Restart-Computer
Startet das Betriebssystem auf lokalen und Remotecomputern neu.
Syntax
Restart-Computer
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-Force]
[-Wait]
[-Timeout <Int32>]
[-For <WaitForServiceTypes>]
[-Delay <Int16>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Restart-Computer
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-Force]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Restart-Computer
Cmdlet startet das Betriebssystem auf den lokalen und Remotecomputern neu.
Sie können die Parameter zum Ausführen der Restart-Computer
Neustartvorgänge als Hintergrundauftrag verwenden, um die Authentifizierungsstufen und alternativen Anmeldeinformationen anzugeben, um die Vorgänge zu beschränken, die gleichzeitig ausgeführt werden, und einen sofortigen Neustart zu erzwingen.
Ab Windows PowerShell 3.0 können Sie warten, bis der Neustart abgeschlossen ist, bevor Sie den nächsten Befehl ausführen. Geben Sie ein Wartezeit- und Abfrageintervall an, und warten Sie, bis bestimmte Dienste auf dem neu gestarteten Computer verfügbar sind. Dieses Feature macht es praktisch, in Skripts und Funktionen zu verwenden Restart-Computer
.
Sie können das WS-Management-Protokoll (WSMan) verwenden, um den Computer neu zu starten, falls DCOM-Aufrufe (Distributed Component Object Model) blockiert werden, z. B. durch eine Unternehmensfirewall. Weitere Informationen finden Sie unter WS-Management Protocol.
Dieses Cmdlet erfordert Windows PowerShell-Remoting nur, wenn Sie den AsJob-Parameter in einem Befehl verwenden.
Beispiele
Beispiel 1: Neustarten des lokalen Computers
Restart-Computer
startet den lokalen Computer neu.
Restart-Computer
Beispiel 2: Neustarten mehrerer Computer
Restart-Computer
kann Remote- und lokale Computer neu starten. Der Parameter ComputerName akzeptiert ein Array von Computernamen.
Restart-Computer -ComputerName Server01, Server02, localhost
Beispiel 3: Neustarten von Computern als Hintergrundauftrag
Diese Befehle führen einen Restart-Computer
Befehl als Hintergrundauftrag auf zwei Remotecomputern aus und erhalten dann die Ergebnisse.
Da AsJob den Auftrag auf dem lokalen Computer erstellt und die Ergebnisse automatisch an den lokalen Computer zurückgibt, können Sie als lokaler Befehl ausführen Receive-Job
.
$Job = Restart-Computer -ComputerName "Server01", "Server02" -AsJob
$Job | Receive-Job
Restart-Computer
verwendet den Parameter ComputerName, um Server01 und Server02 anzugeben. Der Parameter AsJob führt den Befehl als Hintergrundauftrag aus. Das Auftragsobjekt wird in der $Job
Variablen gespeichert. $Job
wird an das Receive-Job
Cmdlet gesendet, das die Ergebnisse abruft.
Beispiel 4: Neustarten eines Remotecomputers
Restart-Computer
startet einen Remotecomputer mit angepassten Identitätswechsel- und Authentifizierungseinstellungen neu.
Restart-Computer -ComputerName Server01 -Impersonation Anonymous -DcomAuthentication PacketIntegrity
Restart-Computer
verwendet den Parameter ComputerName, um Server01 anzugeben. Der Parameter "Identitätswechsel " gibt Anonym an, um die Identität des Antragstellers auszublenden. Der DcomAuthentication-Parameter gibt PacketIntegrity als Authentifizierungsebene der Verbindung an.
Beispiel 5: Erzwingen des Neustarts von Computern, die in einer Textdatei aufgeführt sind
In diesem Beispiel wird ein sofortiger Neustart der in der Domain01.txt
Datei aufgeführten Computer erzwungen. Die Computernamen aus der Textdatei werden in einer Variablen gespeichert. Der Parameter Force erzwingt einen sofortigen Neustart, und der ThrottleLimit-Parameter begrenzt die Anzahl gleichzeitiger Verbindungen.
$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force -ThrottleLimit 10
Get-Content
verwendet den Path-Parameter , um eine Liste der Computernamen aus einer Textdatei abzurufen, Domain01.txt. Die Computernamen werden in der Variablen $Names
gespeichert. Get-Credential
fordert Sie auf, einen Benutzernamen und ein Kennwort einzugeben und die Werte in der Variablen $Creds
zu speichern. Restart-Computer
verwendet die Parameter "ComputerName " und "Credential " mit ihren Variablen. Der Parameter Force bewirkt einen sofortigen Neustart der einzelnen Computer. Der Parameter ThrottleLimit beschränkt den Befehl auf 10 gleichzeitige Verbindungen.
Beispiel 6: Neustarten eines Remotecomputers und Warten auf PowerShell
Restart-Computer
startet den Remotecomputer neu und wartet dann bis zu 5 Minuten (300 Sekunden), bis PowerShell auf dem neu gestarteten Computer verfügbar ist, bevor er fortgesetzt wird.
Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2
Restart-Computer
verwendet den Parameter ComputerName, um Server01 anzugeben. Der Wait-Parameter wartet, bis der Neustart abgeschlossen ist. The For gibt an, dass PowerShell Befehle auf dem Remotecomputer ausführen kann. Der Timeout-Parameter gibt eine Wartezeit von fünf Minuten an. Der Delay-Parameter fragt den Remotecomputer alle zwei Sekunden ab, um zu ermitteln, ob er neu gestartet wird.
Beispiel 7: Neustarten eines Computers mithilfe des WSMan-Protokolls
Restart-Computer
startet den Remotecomputer neu, indem das WSMan-Protokoll anstelle des Standard-DCOM verwendet wird. Die Kerberos-Authentifizierung bestimmt, ob der aktuelle Benutzer über die Berechtigung zum Neustart des Remotecomputers verfügt.
Diese Einstellungen sind für Unternehmen konzipiert, in denen DCOM-basierte Neustarts fehlschlagen, da DCOM blockiert wird. Beispiel: durch eine Firewall.
Restart-Computer -ComputerName Server01 -Protocol WSMan -WsmanAuthentication Kerberos
Restart-Computer
verwendet den Parameter ComputerName, um den Remotecomputer Server01 anzugeben.
Der Protocol-Parameter gibt die Verwendung des WSMan-Protokolls an. Der WsmanAuthentication-Parameter gibt die Authentifizierungsmethode als Kerberos an.
Parameter
-AsJob
Gibt an, dass Restart-Computer
als Hintergrundauftrag ausgeführt wird.
Um diesen Parameter zu verwenden, müssen die lokalen und Remotecomputer für Remoting konfiguriert werden. Unter Windows Vista und höheren Versionen des Windows-Betriebssystems müssen Sie PowerShell mithilfe der Option "Als Administrator ausführen" öffnen. Weitere Informationen finden Sie unter about_Remote_Requirements.
Wenn Sie den AsJob-Parameter angeben, gibt der Befehl sofort ein Objekt zurück, das den Hintergrundauftrag darstellt. Sie können die Sitzung weiterhin verwenden, während der Auftrag abgeschlossen wird. Der Auftrag wird auf dem lokalen Computer erstellt, und die Ergebnisse von Remotecomputern werden automatisch an den lokalen Computer zurückgegeben. Verwenden Sie zum Verwalten des Auftrags die Cmdlets "Auftrag ". Verwenden Sie das Receive-Job
Cmdlet, um die Auftragsergebnisse abzurufen.
Weitere Informationen zu Windows PowerShell-Hintergrundaufträgen finden Sie unter about_Jobs und about_Remote_Jobs.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ComputerName
Gibt einen Computernamen oder ein durch Trennzeichen getrenntes Array von Computernamen an. Restart-Computer
akzeptiert ComputerName-Objekte aus der Pipeline oder Variablen.
Geben Sie den NetBIOS-Namen, eine IP-Adresse oder den vollqualifizierten Domänennamen eines Remotecomputers ein. Geben Sie zum Angeben des lokalen Computers den Computernamen, einen Punkt .
oder einen Localhost ein.
Dieser Parameter basiert nicht auf PowerShell-Remoting. Sie können den Parameter ComputerName auch dann verwenden, wenn Ihr Computer nicht für die Ausführung von Remotebefehlen konfiguriert ist.
Wenn der Parameter "ComputerName " nicht angegeben ist, Restart-Computer
wird der lokale Computer neu gestartet.
Typ: | String[] |
Aliase: | CN, __SERVER, Server, IPAddress |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Confirm
Fordert Sie vor dem Ausführen Restart-Computer
zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Credential
Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Der Standardwert ist der aktuelle Benutzer.
Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Domain01\User01", oder geben Sie ein vom Cmdlet generiertes Get-Credential
PSCredential-Objekt ein. Wenn Sie einen Benutzernamen eingeben, werden Sie aufgefordert, das Kennwort einzugeben.
Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString gespeichert.
Hinweis
Weitere Informationen zum Schutz von SecureString finden Sie unter "Wie sicher ist SecureString?".
Typ: | PSCredential |
Position: | 1 |
Standardwert: | Current user |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-DcomAuthentication
Gibt die Authentifizierungsebene an, die für die WMI-Verbindung verwendet wird. Restart-Computer
verwendet WMI.
Gültige Werte sind:
- Anruf: COM-Authentifizierung auf Anrufebene
- Verbinden: COM-Authentifizierung auf Verbindungsebene
- Standard: Windows-Authentifizierung
- Keine: Keine COM-Authentifizierung
- Paket: COM-Authentifizierung auf Paketebene.
- PacketIntegrity: COM-Authentifizierung auf Paketintegritätsebene
- PacketPrivacy: COM-Authentifizierung auf Paketdatenschutzebene.
- Unverändert: Die Authentifizierungsebene ist identisch mit dem vorherigen Befehl.
Weitere Informationen finden Sie unter AuthenticationLevel-Aufzählung.
Dieser Parameter wird in Windows PowerShell 3.0 eingeführt.
Typ: | AuthenticationLevel |
Aliase: | Authentication |
Zulässige Werte: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Delay
Gibt die Häufigkeit von Abfragen in Sekunden an. PowerShell fragt den vom Parameter For angegebenen Dienst ab, um zu ermitteln, ob der Dienst nach dem Neustart des Computers verfügbar ist.
Dieser Parameter ist nur zusammen mit den Parametern "Wait " und "For " gültig.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Wenn der Parameter Delay nicht angegeben ist, Restart-Computer
wird eine verzögerung von fünf Sekunden verwendet.
Typ: | Int16 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-For
Gibt das Verhalten von PowerShell an, da sie wartet, bis der angegebene Dienst oder das angegebene Feature nach dem Neustart des Computers verfügbar ist. Dieser Parameter ist nur mit dem Wait-Parameter gültig.
Zulässige Werte für diesen Parameter:
- Standard: Wartet auf den Neustart von PowerShell.
- PowerShell: Befehle können in einer PowerShell-Remotesitzung auf dem Computer ausgeführt werden.
- WMI: Empfängt eine Antwort auf eine Win32_ComputerSystem Abfrage für den Computer.
- WinRM: Kann mithilfe der WS-Verwaltung eine Remotesitzung auf dem Computer einrichten.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | WaitForServiceTypes |
Zulässige Werte: | Wmi, WinRM, PowerShell |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Force
Erzwingt einen sofortigen Neustart des Computers.
Typ: | SwitchParameter |
Aliase: | f |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Impersonation
Gibt die Identitätswechselebene an, die dieses Cmdlet zum Aufrufen von WMI verwendet. Restart-Computer
verwendet WMI.
Zulässige Werte für diesen Parameter:
- Standard: Standardidentitätswechsel. Trotz des Namens ist dies nicht der Standardwert.
- Anonym: Blendet die Identität des Anrufers aus.
- Identifizieren: Ermöglicht Objekten das Abfragen der Anmeldeinformationen des Aufrufers.
- Identitätswechsel: Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers zu verwenden.
Typ: | ImpersonationLevel |
Zulässige Werte: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Protocol
Gibt an, welches Protokoll zum Neustarten der Computer verwendet werden soll. Die gültigen Werte sind WSMan und DCOM.
Dieser Parameter wird in Windows PowerShell 3.0 eingeführt.
Typ: | String |
Zulässige Werte: | DCOM, WSMan |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ThrottleLimit
Gibt die maximale Anzahl von gleichzeitigen Verbindungen an, die zum Ausführen dieses Befehls hergestellt werden können. Die Drosselungsgrenze gilt nur für den aktuellen Befehl und nicht für die Sitzung oder den Computer.
Wenn der ThrottleLimit-Parameter nicht angegeben ist oder ein Wert von 0 verwendet wird, Restart-Computer
werden maximal 32 gleichzeitige Verbindungen verwendet.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Timeout
Gibt die Dauer des Wartevorgangs in Sekunden an. Wenn das Timeout verstrichen ist, Restart-Computer
kehren Sie zur Eingabeaufforderung zurück, auch wenn die Computer nicht neu gestartet werden.
Der Timeout-Parameter ist nur mit dem Wait-Parameter gültig. Timeout überschreibt den unbestimmten Wartezeitszeitraum des Wait-Parameters .
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | Int32 |
Aliase: | TimeoutSec |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Wait
Restart-Computer
unterdrückt die PowerShell-Eingabeaufforderung und blockiert die Pipeline, bis die Computer neu gestartet wurden. Sie können diesen Parameter in einem Skript verwenden, um Computer neu zu starten und dann weiter zu verarbeiten, wenn der Neustart abgeschlossen ist.
Der Wait-Parameter wartet auf unbestimmte Zeit, bis die Computer neu gestartet werden. Sie können Timeout verwenden, um die Anzeigedauer und die Parameter "For" und "Delay" anzupassen, damit bestimmte Dienste auf den neu gestarteten Computern verfügbar sind.
Der Wait-Parameter ist ungültig, wenn Sie den lokalen Computer neu starten. Wenn der Wert des Parameters "ComputerName " die Namen von Remotecomputern und dem lokalen Computer enthält, Restart-Computer
wird ein nicht beendeter Fehler für "Warten auf dem lokalen Computer" generiert, aber auf die Remotecomputer wartet, bis der Neustart erfolgt.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passiert, wenn die Restart-Computer
Ausführung erfolgt. Das Restart-Computer
Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WsmanAuthentication
Gibt den Mechanismus an, der zum Authentifizieren der Benutzeranmeldeinformationen verwendet wird. Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Die zulässigen Werte für diesen Parameter sind: Basic, CredSSP, Default, Digest, Kerberos und Negotiate.
Weitere Informationen finden Sie unter AuthenticationMechanism.
Warnung
Credential Security Service Provider (CredSSP)-Authentifizierung, bei der die Benutzeranmeldeinformationen an einen Remotecomputer übergeben werden, der authentifiziert werden soll, ist für Befehle konzipiert, die eine Authentifizierung für mehrere Ressourcen erfordern, z. B. den Zugriff auf eine Remotenetzwerkfreigabe. Dieser Mechanismus erhöht das Sicherheitsrisiko des Remotevorgangs. Wenn die Sicherheit des Remotecomputers gefährdet ist, können die an ihn übergebenen Anmeldeinformationen zum Steuern der Netzwerksitzung verwendet werden.
Typ: | String |
Zulässige Werte: | Basic, CredSSP, Default, Digest, Kerberos, Negotiate |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können eine Zeichenfolge mit einem Computernamen an dieses Cmdlet weiterleiten.
Ausgaben
None
Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.
System.Management.Automation.RemotingJob
Wenn Sie den Parameter AsJob verwenden, gibt dieses Cmdlet ein Auftragsobjekt zurück.
Hinweise
Restart-Computer
funktioniert nur auf Computern unter Windows und erfordert, dass WinRM und WMI ein System herunterfahren, einschließlich des lokalen Systems.Restart-Computer
verwendet die Win32Shutdown-Methode der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) Win32_OperatingSystem Klasse. Für diese Methode ist die SeShutdownPrivilege-Berechtigung für das Benutzerkonto aktiviert, das zum Neustarten des Computers verwendet wird.
In Windows PowerShell 2.0 funktioniert der AsJob-Parameter nicht zuverlässig, wenn Sie Remotecomputer neu starten oder beenden. In Windows PowerShell 3.0 wurde die Implementierung geändert, um dieses Problem zu beheben.