Mit WinRM und WSMan Remote mehrere Computer neustarten?

Rubyurek

Commander
Registriert
Sep. 2017
Beiträge
2.556
Moin,
mein Ziel ist es mehrere Rechner (knapp 150 Rechner) über ein Powershell Skript neustarten zu können. Über SCCM habe ich kein Zugang auf der Arbeit, jedoch ist auf den Rechnern WinRM und WSMan aktiviert und möchte mir dies zu nutze machen um dann mit einem Skript die Computer neu zu starten.
PowerShell:
# Liste der Computer
$computers = @()
for ($i = 800; $i -le 969; $i++) {
    # COM900 ausschließen
    if ($i -ne 900) {
        $computers += "COM$i"
    }
}

# Neustartbefehl an alle Computer in der Liste senden, außer COM900
Invoke-Command -ComputerName $computers -ScriptBlock { Restart-Computer -Force }
===============================

Beim ausführen kommen einige Fehler:

- Die Anforderung kann von WinRM nicht verarbeitet werden. Der folgende Fehler ist bei
Verwendung der Kerberos-Authentifizierung aufgetreten: Der Computer "COM954" konnte nicht gefunden werden. Stellen Sie sicher, dass der Computer im Netzwerk vorhanden ist und dass der angegebene Name richtig geschrieben ist.

- Bei tracert COM954 kommt die Meldung, dass der Zielname nicht aufgelöst werden kann. Dabei ist der DNS aktiv und die Meldung kommt auch wenn ich die feste-IP dafür eingebe.

Ich bin mittlerweile ratlos wie ich das Skript zum laufen kriege. Mein Rechner und die anderen Rechner sind auch im selben Netz.
 
Wieso steht der Neustart Befehl nicht in der Schleife drin?

btw da fehlt jede art von Fehlerbehandlung,etc.
 
Das eigentliche Problem ist also gar nicht das Script, sondern dass Du COM954 nicht von außen erreichst?
Dann würde ich doch mal hingehen und schauen, ob der angeschaltet und am Netz ist.
 
HisN schrieb:
Dann würde ich doch mal hingehen und schauen, ob der angeschaltet und am Netz ist.
Ping geht ganz normal durch und er ist angeschaltet.
 
Nicht dass der User dieses Rechners die Firewall umgestellt hat^^
 
  • Gefällt mir
Reaktionen: Gortha
@HisN Zugriff auf die Firewall haben die eh nicht. Das ist über die Policy geregelt. Jedoch wäre mir neu, wenn das blockiert wäre, weil die Dienste für Remotezugriff vorhanden ist und ich mich auch ohne Probleme auf die PCs raufschalten kann. Nur über den Skript ein Neustart durchzuführen ist nicht möglich und das wundert mich etwas.
 
Kannst du generell via WinRM http/5985oder https/5986 gegen den Host "COM954" PS-Remoting in Form von Invoke-Command oder New-PSSession erfolgreich ausführen?

Wie HISN schon schrieb. Host ansehen. Firewall, Ist WinRM lokal konfiguriert(Listener vorhanden?), läuft WSMan, ...
Wenn du nur wenige Ausreißer hast, die sich nicht remote neustarten lassen, dann muss man die manchmal eben ablaufen und von Hand ran gehen. In einer so beträchtlichen Menge sind leider öfters Ausreißer dabei.
 
- ich bin mir relativ sicher, daß Restart-Computer bereits einen Parameter für -Computername akzeptiert... Invoke-Command sollte(tm) nicht erforderlich sein.

- fehler bei der Kerberos-Authentifizierung deuten tatsächlich auf einen Fehler bei der Kerberos-Authentifizierung hin und nicht auf ein Netzwerkproblem (als solches) oder gar auf ein Poweshell-Problem.

- Prüfen, ob:

  • die Zeit auf der Kiste stimmt
  • das Teil nicht aus der Domain geflogen ist (test-computersecurechannel auf dem Gerät ausführen)
  • der DNS A-Record zum Gerät paßt. Besonders wenn man DHCP ohne Reservierungen hat und sich die IP-Adressen schon mal ändern können, dann verweist der DNS-RR auf ein anderes Gerät und Kerberos wird das ordnungsgemäß ablehnen.


Und während selbstverständlich Powershell prädestiniert ist für die Verarbeitung von Listen, so hat man doch ein gewisses Problem, wenn "irgendein" Element dieser Liste fehlschlägt. Deshalb ist es trotz allem keine schlechte Idee, sowas wie
PowerShell:
foreach($element in $list)
{
try
{
restart-computer -computername $element -errorAction Stop
}
catch{
# log failure to file or something
}
}
zu basteln. Dann sind nämlich mehr oder weniger zuverlässig die restlichen Elemente aus der Liste verarbeitet (aka neu gestartet) und die paar wo das nicht der FAll ist, die kann man dann gesondert behandeln.

Verarbeitet man dagegen die gesamte Liste, dann kann man keine Aussage treffen: wurden die Geräte bis zum problematischen Eintrag verarbeitet? Wurden gar keine verarbeitet?
Das ist dann stark von der Situation abhängig. Daher: Listenverarbeitung nur, wenn man eine gewisse Vorstellung hat von dem was da passiert oder wenn es einem schlichtweg egal ist.
 
  • Gefällt mir
Reaktionen: Gortha
Zurück
Oben