- Copy our wallpaper file to the user’s workstation.
- Instruct Windows to use our file instead of the default %WinDir%\System32\oobe\background.bmp file.

Imagine you wanted to run a quick report of all your server’s service pack level in your domain. After all, SP1 just came out! You could get this information quickly by using the Active Directory Module for Windows PowerShell. If you don’t have at least one Windows 2008 R2 (RTM or SP1) Domain Controller, you could also do something similar with the free Quest PowerShell tools, but that’s for another day…
We can find this information using a few different methods. Here I’ll show two:
Method 1
Get-ADComputer -Properties OperatingSystem, OperatingSystemServicePack -Filter * | Where-Object {$_.OperatingSystem -like '*server*'} | Format-Table name, oper* -autosize |
You can see with Method 1, we’re telling PowerShell to get all the computer accounts from Active Directory. Then we pass those objects over to the “Where-object” cmdlet and ask it to select only those who have an OperatingSystem attribute containing “server”. We then format the results in a table. Give it a try.
Not too shabby; but let’s make it better!
Method2
Get-ADComputer -Properties OperatingSystem, OperatingSystemServicePack -Filter {OperatingSystem -like '*server*'} | Format-Table name, oper* -autosize |
In Method 2, we’re making smarter use of the –Filter switch. So instead of getting ALL the computer accounts, we do our filtering up-front. This can lead to significant amount of time saved!
How much time, you ask? Well, we can find out with the “Measure-Command” cmdlet. Just put any command string in {} and it will tell you how long it took to run!
Here are the results from a small environment with fast servers. 677 milliseconds isn’t bad, but when you compare it to 73, you can begin to appreciate the potential.
One last thought: You may wish to add this extra code to make your output prettier. It will organize your results first by operating system and then by name:
Get-ADComputer -Properties OperatingSystem, OperatingSystemServicePack -Filter {OperatingSystem -like '*server*'} | Sort-Object operatingsystem, name | Format-Table name, oper* -autosize |