Bei einer Kennwortänderung in kleinen Domänen, also wenn das „Administrator“ Kennwort nach laaaanger Laufzeit geändert wird, müssen einige Dienste, die im Laufe der Zeit als solcher eingerichtet wurden, ebenfalls geändert werden. In den meisten Fällen ist im Laufe der Zeit auch die Anzahl der Server gewachsen.
Wie kommt der faule Administrator als nun an eine Liste der Server, wo die Anmeldedaten von Diensten angepasst werden müssen?
Lösung
Unter der Voraussetzung, dass PowerShell Remoting eingerichtet und funktionsfähig ist, hilft dieses kleine aber feine Script.
Zuerst wird eine Liste aller Server aus dem AD geholt und dann via WMIC eine gefilterte Liste der Dienste geholt, die nicht als „LocalSystem“ oder „NT Author%“ gestartet werden. Letzteres ist ein Trick, um sowohl „NT Authorität“ als auch „NT Authority“ auf Deutsch und Englisch zu erwischen.
Import-Module ActiveDirectory
$Servers = ( (Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true"').dnshostname )
$ServiceName = @{ Name = 'ServiceName'; Expression = {$_.Name}}
$ServiceDisplayname = @{ Name = 'Service DisplayName'; Expression = {$_.Caption}}
foreach ($server in $servers) {
Invoke-Command $server -ScriptBlock {
Get-CimInstance -Class Win32_Service -filter "StartName != 'LocalSystem' AND NOT StartName LIKE 'NT Author%' " } |
Select-Object SystemName, $ServiceName, $ServiceDisplayname, StartMode, StartName, State | format-table -autosize
}