# Windows Neustart von Domänen-PCs per CMD

# Neustart von Domänen-PCs per CMD &amp; PowerShell

Diese Anleitung erklärt Schritt für Schritt, wie du Windows-Rechner innerhalb einer Active-Directory-Domäne remote neu startest. Jede Methode wird samt Parametern, Fallstricken und Best-Practices beschrieben.

## 1 · Voraussetzungen

- Domänen-Admin-Konto *oder* explizite Berechtigung <q>Herunterfahren des Systems vom Remotestandort aus</q> via GPO.
- Firewall-Ports geöffnet: 
    - RPC TCP 135 + dynamische Ports (CMD/PowerShell)
    - SMB TCP 445 (PsExec)
- UAC Remote-Lockdown berücksichtigt (Registry-Key `LocalAccountTokenFilterPolicy` bei lokalen Konten).

<div class="alert alert-info" id="bkmrk-tipp%3A-pr%C3%BCfe-vor-dem-">**Tipp:** Prüfe vor dem Neustart per `msg *` oder `shutdown /i`, ob sich Benutzer anmelden.</div>## 2 · Einzelner PC per `shutdown` (CMD)

```cmd
shutdown /r /m \\PC-NAME /f /t 0 /c "Neustart durch Admin"
```

<table id="bkmrk-schalter-beschreibun"><thead><tr><th>Schalter</th><th>Beschreibung</th><th>Beispielwert</th></tr></thead><tbody><tr><td>`/r`</td><td>Neustarten (anstatt herunterfahren)</td><td>–</td></tr><tr><td>`/m \\PC-NAME`</td><td>Zielrechner (NetBIOS, FQDN oder IP)</td><td>`\\WKS-23`</td></tr><tr><td>`/f`</td><td>Offene Apps zwangsschließen</td><td>–</td></tr><tr><td>`/t 0`</td><td>Wartezeit in Sekunden</td><td>`0` = sofort</td></tr><tr><td>`/c "…"`</td><td>Kommentar, erscheint im Ereignislog</td><td>`"Patch-Reboot"`</td></tr></tbody></table>

## 3 · Einzelner PC per `Restart-Computer` (PowerShell)

```powershell
Restart-Computer -ComputerName "PC-NAME" -Force -ErrorAction Stop
```

Wichtige Parameter:

- `-ComputerName` → String | String-Array mit Zielrechnern
- `-Force` → Beendet Prozesse ohne Nachfrage
- `-Credential (Get-Credential)` → Anderes Konto angeben
- `-Timeout 0` → (Sek.) bis die Cmdlet-Rückmeldung abbricht

## 4 · Mehrere PCs gleichzeitig

### PowerShell-Array

```powershell
$targets = @("PC1","PC2","PC3")
Restart-Computer -ComputerName $targets -Force -ThrottleLimit 8
```

### CMD-Schleife über Datei

```cmd
for /f %i in (pc_liste.txt) do shutdown /r /m \\%i /f /t 0
```

## 5 · PsExec-Variante (Sysinternals)

```cmd
psexec \\PC-NAME -s -d shutdown /r /f /t 0
```

PsExec setzt lediglich **TCP 445** voraus und funktioniert daher sogar, wenn RPC blockiert ist. Der Schalter `-s` startet den Befehl unter <q>System</q>; `-d` trennt sofort die Sitzung.

<div class="alert alert-warning" id="bkmrk-sicherheitshinweis%3A-">**Sicherheitshinweis:** Übertrage PsExec immer über HTTPS oder SMB-Signierung und lösche es von Zielsystemen nach Gebrauch.</div>## 6 · Troubleshooting

- **Access denied (5)** → Prüfe GPO *Herunterfahren des Systems…* &amp; UAC-Lockdown.
- **RPC Server unavailable (0x6BA)** → Firewall-Ports, Dienst <q>Windows Remoteverwaltung (WinRM)</q>.
- **Die Netzwerkpfadangabe wurde nicht gefunden** → NetBIOS-Auflösung oder DNS-Name falsch.
- **Fehler Failed to schedule computer restart** → Eventlog → *System → USER32*.

## 7 · Spickzettel

<table id="bkmrk-aktion-cmd-powershel"><thead><tr><th>Aktion</th><th>CMD</th><th>PowerShell</th></tr></thead><tbody><tr><td>Lokal neustarten</td><td>`shutdown /r /f /t 0`</td><td>`Restart-Computer -Force`</td></tr><tr><td>Remote neustarten</td><td>`shutdown /r /m \\PC /f /t 0`</td><td>`Restart-Computer -ComputerName "PC" -Force`</td></tr><tr><td>Gruppe per Datei</td><td>`for /f %i in (liste.txt) do …`</td><td>`$list = Get-Content liste.txt`</td></tr><tr><td>Firewall prüfen</td><td colspan="2">`Test-NetConnection PC -Port 135`</td></tr></tbody></table>