Parola süresi dolmuş kullanıcılar listesi raporunu oluşturma ve dışa aktarma
Windows PowerShell ve ADManager Plus ile parola süresi dolmuş kullanıcıların bir listesinin elde edilmesi arasındaki karşılaştırma aşağıda yer almaktadır:
VBScript
VBScript kullanarak parola süresi dolmuş kullanıcıları elde etme adımları:
- Raporu almak istediğiniz alanı belirleyin.
- Raporu getirmek için ihtiyacınız olan LDAP özniteliklerini belirleyin.
- Raporu getirmek için birincil DC’yi belirleyin.
- Kod dizisini derleyin ve yürütün.
- Rapor belirlenen formatta dışa aktarılacaktır.
- Raporu farklı bir formatta almak için kod dizisini kullanıcının ihtiyaçlarına göre değiştirin.
Sample VBScript:
Copied
Option Explicitfunction foo Dim adoCommand, adoConnection, strBase, strFilter, strAttributes Dim objRootDSE, strDNSDomain, strQuery, adoRecordset Dim dtmDate2, strName, strEmail Dim lngSeconds2, str64Bit2 Dim objShell, lngBiasKey, lngBias, k Dim objDomain, objMaxPwdAge, lngHighAge, lngLowAge, sngMaxPwdAge Dim objDate, dtmPwdLastSet, dtmExpires Dim strItem, strPrefix, objFSO, objLogFile Const ForWriting = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objLogFile = objFSO.CreateTextFile("C:\Scripts\PasswordExp.csv", ForWriting, True) objLogFile.Write "sAMAccountName," objLogFile.Write "mail," objLogFile.Write "passwordExpiresAt" objLogFile.Writeline ' Determine domain maximum password age policy in days. Set objRootDSE = GetObject("LDAP://RootDSE") strDNSDomain = objRootDSE.Get("DefaultNamingContext") Set objDomain = GetObject("LDAP://" & strDNSDomain) Set objMaxPwdAge = objDomain.MaxPwdAge lngHighAge = objMaxPwdAge.HighPart lngLowAge = objMaxPwdAge.LowPart If (lngLowAge < 0) Then lngHighAge = lngHighAge + 1 End If ' Convert from 100-nanosecond intervals into days. sngMaxPwdAge = -((lngHighAge * 2^32) _ + lngLowAge)/(600000000 * 1440) dtmDate2 = DateAdd("d", - sngMaxPwdAge, Now()) ' Obtain local Time Zone bias from machine registry. ' This bias changes with Daylight Savings Time. Set objShell = CreateObject("Wscript.Shell") lngBiasKey = objShell.RegRead("HKLM\System\CurrentControlSet\Control\" _ & "TimeZoneInformation\ActiveTimeBias") If (UCase(TypeName(lngBiasKey)) = "LONG") Then lngBias = lngBiasKey ElseIf (UCase(TypeName(lngBiasKey)) = "VARIANT()") Then lngBias = 0 For k = 0 To UBound(lngBiasKey) lngBias = lngBias + (lngBiasKey(k) * 256^k) Next End If dtmDate2 = DateAdd("n", lngBias, dtmDate2) lngSeconds2 = DateDiff("s", #1/1/1601#, dtmDate2) str64Bit2 = CStr(lngSeconds2) & "0000000" ' Setup ADO objects. Set adoCommand = CreateObject("ADODB.Command") Set adoConnection = CreateObject("ADODB.Connection") adoConnection.Provider = "ADsDSOObject" adoConnection.Open "Active Directory Provider" Set adoCommand.ActiveConnection = adoConnection ' Search entire Active Directory domain. strBase = "<ldap: "="" &="" strdnsdomain="">" ' ' strFilter = "(&(objectCategory=person)(objectClass=user)" _ & "(!pwdLastSet=0)" _ & "(pwdLastSet<=" & str64Bit2 & ")" _ & "(!userAccountControl:1.2.840.113556.1.4.803:=2)" _ & "(!userAccountControl:1.2.840.113556.1.4.803:=65536)" _ & "(!userAccountControl:1.2.840.113556.1.4.803:=32)" _ & "(!userAccountControl:1.2.840.113556.1.4.803:=48))" ' Comma delimited list of attribute values to retrieve. strAttributes = "sAMAccountName,mail,pwdLastSet" ' Construct the LDAP syntax query. strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree" adoCommand.CommandText = strQuery 'Filter on user objects where the password expires between the dates specified, the account is not disabled, password never expires is not set, password not required is not set, and password cannot change is not set.' adoCommand.Properties("Page Size") = 100 adoCommand.Properties("Timeout") = 30 adoCommand.Properties("Cache Results") = False ' Run the query. Set adoRecordset = adoCommand.Execute ' Enumerate the resulting recordset. Do Until adoRecordset.EOF strName = adoRecordset.Fields("sAMAccountName").Value strEmail = adoRecordset.Fields("mail").Value & "" If (TypeName(adoRecordset.Fields("pwdLastSet").Value) = "Object") Then Set objDate = adoRecordset.Fields("pwdLastSet").Value dtmPwdLastSet = Integer8Date(objDate, lngBias) Else dtmPwdLastSet = #1/1/1601# End If dtmExpires = DateAdd("d", sngMaxPwdAge, dtmPwdLastSet) objLogFile.Write strName & "," objLogFile.Write strEmail & "," objLogFile.Write dtmExpires objLogFile.Writeline adoRecordset.MoveNext Loop ' Clean up. objLogFile.Close adoRecordset.Close adoConnection.Close Function Integer8Date(ByVal objDate, ByVal lngBias) ' Function to convert Integer8 (64-bit) value to a date, adjusted for ' local time zone bias. Dim lngAdjust, lngDate, lngHigh, lngLow lngAdjust = lngBias lngHigh = objDate.HighPart lngLow = objDate.LowPart ' Account for error in IADsLargeInteger property methods. If (lngLow < 0) Then lngHigh = lngHigh + 1 End If If (lngHigh = 0) And (lngLow = 0) Then lngAdjust = 0 End If lngDate = #1/1/1601# + (((lngHigh * (2 ^ 32)) _ + lngLow) / 600000000 - lngAdjust) / 1440 ' Trap error if lngDate is ridiculously huge. On Error Resume Next Integer8Date = CDate(lngDate) If (Err.Number <> 0) Then On Error GoTo 0 Integer8Date = #1/1/1601# End If On Error GoTo 0 End Function
ADManager Plus
Raporu almak için
- Parola Raporları bölümünden Parola Süresi Dolan Kullanıcıları seçin.
- Domain ve OU’yu seçin. Generate seçeneğine tıklayın.
- Raporu tercih edilen formatlardan birinde (CSV, PDF, HTML, CSVDE ve XLSX) dışarı aktarmak için ‘Export as’ seçeneğini seçin.
Screenshot
VBScript gibi yerel araçları kullanarak parola süresi dolan kullanıcı hesaplarının bir raporunu almaya ilişkin sınırlamalar aşağıda verilmiştir.
- Bu kod dizisini yalnızca etki alanı içinde kullanabiliriz. Birden fazla etki alanı için kod dizisini her etki alanı için değiştirmeli ve yürütmeliyiz.
- Birden fazla hesap yapılmasını gerektirdiğinden kod dizisinin derlenmesi oldukça karmaşıktır.
- Tarih formatlarının değiştirilmesi zordur.
- Tarih sonuçlarında farklı saat dilimlerinin uygulanması zordur.
Özel olarak oluşturulmuş parola raporları ile AD kullanıcıları için parola ayarlarını yönetin.
30 günlük ücretsiz deneme sürümünü edinin.İlgili Powershell Nasıl Yapılır Kılavuzları:
-
AD Kullanıcı Yönetimi için
- Powershell kullanarak AD'de yeni kullanıcı hesapları oluşturma
- PowerShell kullanarak Active Directory kullanıcılarını CSV'den içe aktarma
- Powershell kullanarak AD'de yeni kullanıcı ekleme
- Powershell kullanarak AD kullanıcı özniteliklerini değiştirme
- PowerShell kullanarak Active Directory kullanıcı hesaplarını etkinleştirme
- PowerShell kullanarak AD hesaplarını devre dışı bırakma
- Powershell kullanarak AD'de kullanıcı hesaplarını silme
- Powershell kullanarak AD kullanıcı hesaplarını taşıma
- PowerShell kullanarak kullanıcıları Active Directory grubundan kaldırma
- Powershell kullanarak AD Hesapları için son geçerlilik tarihi belirleme
- Powershell kullanarak AD Hesap Denetimi Değerlerini Değiştirme
- Powershell kullanarak AD hesaplarının kilidini açma
- Powershell kullanarak AD Nesnelerini değiştirme
- Powershell kullanarak AD hesaplarını hiçbir zaman sona ermeyecek şekilde ayarlama
- Powershell Komut Dosyalarıyla AD kullanıcısına proxy adresi ekleme
-
AD Kullanıcı Raporlaması için
- Powershell kullanarak tüm AD kullanıcılarının raporunu alma
- Powershell kullanarak etkin/devre dışı AD kullanıcı hesaplarını alma
- Etkinleştirilmiş AD kullanıcıları raporunu Powershell kullanarak dışa aktarma
- Powershell kullanarak AD'de devre dışı bırakılan kullanıcılar raporunu alma
- PowerShell kullanarak Active Directory hesabı durum raporlarını alma
- Powershell kullanarak kilitli AD kullanıcı hesaplarını bulma
- Powershell kullanarak AD'de hesap süresi dolmuş kullanıcıları bulma
- Powershell kullanarak AD kullanıcı hesaplarının son oturum açma zamanını alma
- Powershell kullanarak birden fazla OU'dan AD kullanıcılarının listesini alma
- Powershell ile hiçbir zaman sona ermeyecek şekilde ayarlanmış AD kullanıcı hesaplarını listeleme
- Powershell kullanarak AD'de belirli kullanıcıları bulma
- Belirli bir Departmana ait AD kullanıcılarının listesini alma
- Powershell kullanarak boş özniteliklere sahip AD kullanıcılarının listesini alma
- Powershell kullanarak Belirli bir CN'ye sahip AD Kullanıcılarının listesini alma
-
GPO Yönetimi için
- Powershell kullanarak GPO oluşturma
- PowerShell kullanılarak GPO bağlantılarını oluşturma ve kaldırma
- Powershell kullanarak GPO'yu düzenleme
- Powershell kullanarak GPO raporu oluşturma
- Powershell kullanarak Bağlantısı Kaldırılış GPO'yu Görüntüleme
- Powershell kullanarak GPO Listesini alma
- Powershell kullanarak GPO Bağlantı Raporu alma
- Powershell kullanarak GPO'yu yedekleme ve geri yükleme
-
Parola Yönetimi için
- PowerShell kullanarak AD kullanıcılarının parolasını değiştirme
- PowerShell kullanarak AD kullanıcısının son parola değiştirme tarihini bulma
- Powershell kullanarak AD hesapları için parola belirleme
- PowerShell ile AD kullanıcısının bir sonraki oturum açışında parolayı değiştirme gerekliliğini ayarlama
- Powershell kullanarak AD kullanıcı parolasını hiçbir zaman sona ermeyecek şekilde ayarlama
- Powershell kullanarak parola süresi dolmuş kullanıcıların listesini alma
- Powershell kullanarak parola süresi yakında dolacak kullanıcıları alma
- Powershell kullanarak parolalarının süresi hiçbir zaman sona ermeyecek AD Kullanıcılarının Listesini alma
- Powershell kullanarak AD Kullanıcılarının Parola Süresini Sona Erme Tarihini Alma
-
AD Grup Yönetimi için
- Powershell kullanarak Active Directory grupları oluşturma
- Powershell kullanarak Active Directory gruplarına kullanıcı ekleme
- Powershell kullanarak bir grubu başka bir AD Grubunun üyesi olarak ekleme
- Powershell kullanarak AD kullanıcıları için ana grup üyeliği ekleme
- PowerShell komut dosyalarını kullanarak AD grubu özniteliklerini değiştirme
- Powershell kullanarak Active Directory gruplarını silme
- PowerShell kullanarak bir grubu AD'deki başka bir gruptan kaldırma
- Powershell kullanarak dinamik dağıtım grupları oluşturma
- Powershell'i kullanarak dağıtım grupları oluşturma
- PowerShell kullanarak dağıtım gruplarına birden fazla üye ekleme
- Powershell kullanarak belirli bir AD kullanıcısının üyelik ayrıntılarını alma
- Powershell kullanarak AD'de grup üyeliği raporu
-
Dosya Erişim Yönetimi İçin
- Active Directory'de klasör izinlerini ayarlama ve değiştirme
- Powershell kullanarak AD'de dosya ve klasör izinlerini algılama
- Powershell'i kullanarak kullanıcının dosya ve klasör erişim izinlerini dışa aktarma
- Powershell kullanarak tüm AD nesnelerinin izinlerini alma
- Powershell kullanarak klasörler ve alt klasörler için ACL'yi alma
- Powershell'i kullanarak NTFS izinlerini alma
-
AD Bilgisayar Yönetimi için
- PowerShell kullanarak AD Bilgisayar hesapları oluşturma
- PowerShell kullanarak AD Bilgisayar özniteliklerini değiştirme
- PowerShell kullanarak AD Bilgisayar hesaplarını etkinleştirme
- PowerShell kullanarak AD Bilgisayar hesaplarını devre dışı bırakma
- Powershell kullanarak AD Bilgisayar hesaplarını taşıma
- PowerShell kullanarak AD Bilgisayar hesaplarını kaldırma
- PowerShell kullanarak etkin olmayan AD Bilgisayar hesaplarını bulma
- Powershell kullanarak AD Bilgisayarının son oturum açma zamanını bulma
- Powershell Kullanarak AD Etki Alanındaki Bilgisayarları Listeleme
-
Office 365 Yönetimi için
- Office 365 Powershell Modülüne Bağlanma Kılavuzu
- PowerShell kullanarak Office 365 gruplarına kullanıcı ekleme
- PowerShell kullanarak Office 365 kullanıcılarına lisans atama
- Office 365 kullanıcı lisanslarını Powershell kullanarak değiştirme
- Powershell'i kullanarak hesabınızdaki tüm Office 365 lisanslarını görüntüleme
- Powershell kullanarak Office 365 lisansını kullanıcı hesaplarından kaldırma
- Powershell kullanarak Office 365 kullanıcıları lisans raporu
- Powershell kullanarak tüm Office 365 grup üyelerini alma
- Powershell kullanarak dinamik dağıtım grubu üyeleri raporu
- Powershell kullanarak dinamik dağıtım grupları raporu
-
Exchange Yönetimi için
- Exchange Online PowerShell'e Bağlanmak için Hızlı Kılavuz
- Powershell ile Exchange Online'da Posta Kutuları Oluşturma
- Powershell kullanarak posta kutularını Exchange Online'dan kaldırma
- PowerShell kullanarak Exchange Online dağıtım grupları listesini dışarı aktarma
- Powershell ile Exchange Server'da Posta Kutuları Oluşturma
- Powershell kullanarak kullanıcı posta kutularını Exchange Server'dan kaldırma
- PowerShell kullanarak Dağıtım Grubu Üyeleri Raporunu Dışa Aktarma
