A client wanted to rename a specific account, but they were afraid to change this specific account because it could be used as a service account for several services running on a number of servers. Because I didn’t want to logon to all those servers manually I decided to create a powershell script.
Hereby the source code :
$DefineSaveLocation="f:\powershell" $SaveLocaPath=Test-Path $DefineSaveLocation if ($SaveLocaPath -eq $False) {New-Item -ItemType directory -Path $DefineSaveLocation} cd $DefineSaveLocation Foreach ($Server in Get-Content "F:\powershell\inputfile.txt" ) { Write-Host "Retrieving Servers for $Server " Get-WmiObject win32_service -ComputerName $Server | select Name, @{N="Startup Type";E={$_.StartMode}}, @{N="Service Account";E={$_.StartName}}, @{N="System Name";E={$_.Systemname}} | Sort-Object "Name" > ".\$Server -Services.txt" }
This script uses a inputfile containing the servernames. You can use for example use rvtools or an WMI query to create this file.
After running the script the output is as follows :
(Click the picture for a full view)
I imported this file into excel and from now it’s easy to check for accounts being used etc.
Make sure to run powershell in elevated mode and don’t forget the set-executionpolicy unrestricted option.