I’m sitting in my classroom while my class is doing a lab and answering some questions from PowerShell.com. This scripter needs to discover all the computer objects in Active Directory with an empty description and provide a setting for it.
1 2 3 4 5 | Import-Module ActiveDirectory # For PowerShell V2 Compatibility $Desc = "New Description String" Get-ADComputer -Filter * -Properties Description | Where-Object {$_.Description -eq $Null} | Set-ADComputer -Description $Desc |
Line 1 imports the Active Directory module into this session. You can omit this line if you are running PowerShell V3 or V4 and have the PowerShell ActiveDirectory module installed locally.
Line 2 is used to provide the new description property value.
Line 3 gets all the computer objects from Active Directory. I was not able to get a filter for a description that is NULL. Hence the reason for line 4 which uses Where-Object to filter on the NULL Description property. Normally I would aviod using Where-Object whenever possible.
Line 5 sets the new property value.
Asking my class, we have an average of 500 clients per student. We timed this task to take approximately 8 seconds per client to perform this operation manually using Active Directory Users and Computers. Non-stop and without errors, this operation would take just over an hour to complete. In our test environment, this process took 12 seconds to complete the change on 500 clients. Not bad for a simply script.
Comments