Finding the logon scripts

What logon scripts are in your environment

"`nMicrosoft"            
Get-ADUser -LDAPFilter "(&(objectclass=user)(objectcategory=user)(scriptpath=*))" -Properties *|            
Format-Table Name, DistinguishedName, ScriptPath -AutoSize            
            
"`nAD provider"            
Get-ChildItem -Filter "(&(objectclass=user)(objectcategory=user)(scriptpath=*))" `
 -Path Ad:\"DC=Manticore,DC=org" -Recurse |             
foreach {             
 $user = [adsi]"LDAP://$($_.DistinguishedName)"            
 $user | select @{N="Name"; E={$_.name}},             
 @{N="DistinguishedName"; E={$_.distinguishedname}},            
 @{N="LogonScript"; E={$_.scriptpath}}            
} | Format-Table -AutoSize            
             
"`nQuest"            
Get-QADUser -LDAPFilter "(&(objectclass=user)(objectcategory=user)(scriptpath=*))" -IncludeAllProperties |            
Format-Table Name, DN, ScriptPath -AutoSize            
            
"`nScript"            
$root = [ADSI]""            
$search = [adsisearcher]$root            
$search.Filter = "(&(objectclass=user)(objectcategory=user)(scriptpath=*))"             
$search.SizeLimit = 3000            
$search.FindAll() | foreach {            
             
$user = $_.GetDirectoryEntry()            
$user | select @{N="Name"; E={$_.name}},             
 @{N="DistinguishedName"; E={$_.distinguishedname}},            
 @{N="LogonScript"; E={$_.scriptpath}}            
} | Format-Table -AutoSize


Standard search for any user that has the scriptpath attribute set and then display name, distinguished name and scriptpath (logon script name).



To search for a given logon script – change the search filter



"(&(objectclass=user)(objectcategory=user)(scriptpath=<logon_script_name>))"



To just get a list of active logon scripts change the Format-Table as shown below



Get-ADUser -LDAPFilter "(&(objectclass=user)(objectcategory=user)(scriptpath=*))" -Properties *|
sort scriptpath | select ScriptPath -Unique

Leave a Reply