Süresi dolmak üzere olan parolalara sahip kullanıcıların raporunu oluşturma ve dışa aktarma

Windows PowerShell ve ADManager Plus ile süresi dolmak üzere olan parolalara sahip kullanıcıların raporunun 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
strComputer = "." 
sParentFolder = InputBox("Please Enter folder to
gather information on", "Parent Folder")  SParentFoldern=replace(sParentFolder,"\","")  SParentFoldern=replace(sParentFoldern,":","")  Set fso = CreateObject("Scripting.FileSystemObject")  'File name Same As Folder Name without
special Caracteres   fullfilename=SParentFoldern&".html"  'WScript.echo fullfilename  Set fsOut = fso.OpenTextFile
(fullfilename, ForAppending, True)  On Error Resume Next  fsOut.Writeline ("<html>"&vbCr&"<head>"&vbCr&"<title>File Permission For Folder under &"& SParentFoldern&"</title>"&vbCr&"</head>")  strTableHead = "<table border=2 bordercolor='#000010' width='90%' id='Table1'>"  fsOut.Writeline strTableHead  fsOut.Writeline "<tr><td width='50%'>Folder</td>" & _  "<td width='50%'>User Name</td>"&_  "<td width='50%'>Permission</td></tr>"  strTableFoot = "</table>"  fsOut.Close  ShowSubFolders FSO.GetFolder(sParentFolder),<br>fullfilename  OutputFolderInfo sParentFolder, fullfilename  <br> Set fsOut = fso.OpenTextFile(fullfilename, ForAppending, True)  fsOut.Writeline strTableFoot   fsOut.Close  MsgBox "Done "  WScript.Quit  Public Sub OutputFolderInfo(FolderName , sOutfile)  Const FullAccessMask = 2032127, <br>ModifyAccessMask = 1245631, <br>WriteAccessMask = 1180095  Const ROAccessMask = 1179817  Const ForReading = 1, <br>ForWriting = 2, ForAppending = 8  strComputer = "."  'Build the path to the <br>folder because it requites 2 backslashes  folderpath = Replace(FolderName, "\", "\\")  objectpath = <br>"winmgmts:Win32_LogicalFileSecuritySetting<br>.path='" & folderpath & "'"  'Get the security set for the object  Set wmiFileSecSetting = GetObject(objectpath)  'verify that the get was successful  RetVal = wmiFileSecSetting.GetSecurityDescriptor<br>(wmiSecurityDescriptor)  If Err Then  MsgBox ("GetSecurityDescriptor failed" & <br>vbCrLf & Err.Number & vbCrLf & Err.Description)  Err.Clear  End If  Set objWMIService = GetObject("winmgmts:" & "<br>{impersonationLevel=impersonate}!\\" & _  strComputer & "\root\cimv2")  Set colFolders <br>= objWMIService.ExecQuery<br>("SELECT * FROM Win32_Directory WHERE Name ='" & _  folderpath & "'")  For Each objFolder In colFolders  ' Retrieve the DACL array of Win32_ACE objects.  DACL = wmiSecurityDescriptor.DACL  Set fso = <br>CreateObject("Scripting.FileSystemObject")  Set fsOut = <br>fso.OpenTextFile(sOutfile, ForAppending, True)  For Each wmiAce In DACL  ' Get Win32_Trustee object from ACE  Set Trustee = wmiAce.Trustee  fsOut.Writeline "<tr><td width='50%'>"&objFolder.Name&"</td>" & _  "<td width='50%'>"&Trustee.Domain&"\"&Trustee.Name&"</td>"  <br> 'fsOut.Write objFolder.Name & ",<br>" & Trustee.Domain & "\" & Trustee.Name & ","  FoundAccessMask = False  CustomAccessMask = Flase  While Not FoundAccessMask And<br> Not CustomAccessMask  If wmiAce.AccessMask = FullAccessMask Then  AccessType = "Full Control"  FoundAccessMask = True  End If  If wmiAce.AccessMask = ModifyAccessMask Then  AccessType = "Modify"  FoundAccessMask = True  End If  If wmiAce.AccessMask = WriteAccessMask Then  AccessType = "Read/Write Control"  FoundAccessMask = True  End If  If wmiAce.AccessMask = ROAccessMask Then  AccessType = "Read Only"  FoundAccessMask = True  Else  CustomAccessMask = True  End If  Wend  If FoundAccessMask Then  'fsOut.Writeline AccessType  fsOut.Writeline "<td width='50%'>"&AccessType&"</td></tr>"  Else  fsOut.Writeline "<td width='50%'>Custom</td></tr>"  'fsOut.Writeline "Custom"  End If  Next  Set fsOut = Nothing  Set fso = Nothing  Next  Set fsOut = Nothing  Set fso = Nothing  end Sub  Sub ShowSubFolders (Folder,fname)  On Error Resume Next   For Each Subfolder in Folder.SubFolders  Call OutputFolderInfo(Subfolder.Path,fname)  Wscript.Echo Subfolder.Path  call ShowSubFolders (Subfolder,fname)  Next  End Sub 
Click to copy entire script

ADManager Plus

Raporu almak için

  • Parola Raporları bölümünden Süresi Dolmak Üzere Olan Parolalara Sahip 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

A screenshot of ADManager Plus with all the users whose passwords are about to expire
 

» Start 30-day Free Trial

VBScript gibi yerel araçları kullanarak süresi dolmak üzere olan parolalara sahip kullanıcı hesaplarının 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.
  • Farklı bir döneme ait raporu almak için her seferinde "intDays" kod dizisindeki değişkenini değiştirmemiz gerekir.

ADManager Plus yukarıda gösterildiği gibi kapsamlı kod dizisine mükemmel bir geçici çözüm sunar ve Genel Kullanıcılar raporları bölümünde kullanıma hazır rapor sağlayarak parola süresi dolmak üzere olan kullanıcı hesaplarını alır.

PowerShell kod dizisi olmadan AD parolaları ile ilgili raporları planlayıp dışa aktarın.

  30 günlük ücretsiz deneme sürümünü edinin.
  • ADManager Plus ile komut dosyasız AD yönetimi, raporlaması ve otomasyonu yolculuğuna adım atın.

İlgili Powershell Nasıl Yapılır Kılavuzları: