Restart-Computer
Uruchamia ponownie system operacyjny na komputerach lokalnych i zdalnych.
Składnia
Restart-Computer
[[-ComputerName] <string[]>]
[[-Credential] <pscredential>]
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[-WsmanAuthentication <string>]
[-Protocol <string>]
[-Force]
[-Wait]
[-Timeout <int>]
[-For <WaitForServiceTypes>]
[-Delay <int16>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Restart-Computer
[[-ComputerName] <string[]>]
[[-Credential] <pscredential>]
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[-Force]
[-ThrottleLimit <int>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie cmdlet Restart-Computer
ponownie uruchamia system operacyjny na komputerach lokalnych i zdalnych.
Możesz użyć parametrów Restart-Computer
, aby uruchomić operacje ponownego uruchamiania jako zadanie w tle, aby określić poziomy uwierzytelniania i alternatywne poświadczenia, ograniczyć operacje uruchamiane w tym samym czasie i wymusić natychmiastowe ponowne uruchomienie.
Począwszy od programu Windows PowerShell 3.0, możesz poczekać na zakończenie ponownego uruchomienia przed uruchomieniem następnego polecenia. Określ limit czasu oczekiwania i interwał zapytania oraz poczekaj, aż określone usługi będą dostępne na ponownym uruchomieniu komputera. Ta funkcja ułatwia korzystanie z Restart-Computer
w skryptach i funkcjach.
Aby ponownie uruchomić komputer, można użyć protokołu WS-Management (WSMan), w przypadku gdy wywołania modelu DCOM (Distributed Component Object Model) są blokowane, na przykład przez zaporę przedsiębiorstwa. Aby uzyskać więcej informacji, zobacz WS-Management Protocol.
To polecenie cmdlet wymaga komunikacji zdalnej programu Windows PowerShell tylko wtedy, gdy używasz parametru AsJob w poleceniu.
Przykłady
Przykład 1. Ponowne uruchamianie komputera lokalnego
Restart-Computer
ponownie uruchamia komputer lokalny.
Restart-Computer
Przykład 2. Ponowne uruchamianie wielu komputerów
Restart-Computer
można ponownie uruchomić komputery zdalne i lokalne. Parametr ComputerName akceptuje tablicę nazw komputerów.
Restart-Computer -ComputerName Server01, Server02, localhost
Przykład 3. Ponowne uruchamianie komputerów jako zadania w tle
Te polecenia uruchamiają polecenie Restart-Computer
jako zadanie w tle na dwóch komputerach zdalnych, a następnie pobierają wyniki.
Ponieważ asjob tworzy zadanie na komputerze lokalnym i automatycznie zwraca wyniki na komputerze lokalnym, możesz uruchomić Receive-Job
jako polecenie lokalne.
$Job = Restart-Computer -ComputerName "Server01", "Server02" -AsJob
$Job | Receive-Job
Restart-Computer
używa parametru ComputerName w celu określenia Server01 i Server02. Parametr AsJob uruchamia polecenie jako zadanie w tle. Obiekt zadania jest przechowywany w zmiennej $Job
.
$Job
jest wysyłany potok do polecenia cmdlet Receive-Job
, które pobiera wyniki.
Przykład 4. Ponowne uruchamianie komputera zdalnego
Restart-Computer
ponownie uruchamia komputer zdalny z dostosowanymi ustawieniami personifikacji i uwierzytelniania.
Restart-Computer -ComputerName Server01 -Impersonation Anonymous -DcomAuthentication PacketIntegrity
Restart-Computer
używa parametru ComputerName w celu określenia Server01. Parametr Personifikacja określa anonimowe ukrywanie tożsamości osoby żądającego. Parametr DcomAuthentication określa wartość PacketIntegrity jako poziom uwierzytelniania połączenia.
Przykład 5. Wymuszanie ponownego uruchamiania komputerów wymienionych w pliku tekstowym
W tym przykładzie wymusza natychmiastowe ponowne uruchomienie komputerów wymienionych w pliku Domain01.txt
. Nazwy komputerów z pliku tekstowego są przechowywane w zmiennej. Parametr Force wymusza natychmiastowe ponowne uruchomienie, a parametr ThrottleLimit ogranicza liczbę połączeń współbieżnych.
$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force -ThrottleLimit 10
$Names
.
Get-Credential
wyświetla monit o podanie nazwy użytkownika i hasła oraz przechowuje wartości w zmiennej $Creds
.
Restart-Computer
używa parametrów ComputerName i Credential ze swoimi zmiennymi. Parametr Force powoduje natychmiastowe ponowne uruchomienie każdego komputera. Parametr ThrottleLimit ogranicza polecenie do 10 równoczesnych połączeń.
Przykład 6. Ponowne uruchamianie komputera zdalnego i oczekiwanie na program PowerShell
Restart-Computer
ponownie uruchamia komputer zdalny, a następnie czeka do 5 minut (300 sekund), zanim program PowerShell stanie się dostępny na ponownie uruchomionym komputerze.
Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2
Restart-Computer
używa parametru ComputerName w celu określenia Server01. Parametr Wait czeka na zakończenie ponownego uruchomienia.
For określa, że program PowerShell może uruchamiać polecenia na komputerze zdalnym. Parametr Limit czasu określa pięć minut oczekiwania. Parametr Delay wysyła zapytanie do komputera zdalnego co dwie sekundy, aby ustalić, czy jest on uruchamiany ponownie.
Przykład 7. Ponowne uruchamianie komputera przy użyciu protokołu WSMan
Restart-Computer
ponownie uruchamia komputer zdalny przy użyciu protokołu WSMan zamiast domyślnego modelu DCOM. Uwierzytelnianie Kerberos określa, czy bieżący użytkownik ma uprawnienia do ponownego uruchomienia komputera zdalnego.
Te ustawienia są przeznaczone dla przedsiębiorstw, w których ponowne uruchamianie oparte na modelu DCOM kończy się niepowodzeniem, ponieważ model DCOM jest zablokowany. Na przykład przez zaporę.
Restart-Computer -ComputerName Server01 -Protocol WSMan -WsmanAuthentication Kerberos
Restart-Computer
używa parametru ComputerName w celu określenia komputera zdalnego Server01.
Parametr protokołu
Parametry
-AsJob
Wskazuje, że Restart-Computer
działa jako zadanie w tle.
Aby użyć tego parametru, należy skonfigurować komputery lokalne i zdalne na potrzeby komunikacji zdalnej. W systemie Windows Vista i nowszych wersjach systemu operacyjnego Windows należy otworzyć program PowerShell przy użyciu opcji Uruchom jako administrator. Aby uzyskać więcej informacji, zobacz about_Remote_Requirements.
Po określeniu parametru Receive-Job
.
Aby uzyskać więcej informacji na temat zadań w tle programu Windows PowerShell, zobacz about_Jobs i about_Remote_Jobs.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ComputerName
Określa jedną nazwę komputera lub rozdzielaną przecinkami tablicę nazw komputerów.
Restart-Computer
akceptuje obiekty ComputerName z potoku lub zmiennych.
Wpisz nazwę NetBIOS, adres IP lub w pełni kwalifikowaną nazwę domeny komputera zdalnego. Aby określić komputer lokalny, wpisz nazwę komputera, kropkę .
lub localhost.
Ten parametr nie polega na komunikacji zdalnej programu PowerShell. Można użyć parametru ComputerName, nawet jeśli komputer nie jest skonfigurowany do uruchamiania poleceń zdalnych.
Jeśli nie określono parametru ComputerName, Restart-Computer
ponownie uruchomi komputer lokalny.
Typ: | String[] |
Aliasy: | CN, __SERVER, Server, IPAddress |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Confirm
Monituje o potwierdzenie przed uruchomieniem Restart-Computer
.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Wpisz nazwę użytkownika, taką jak User01, Domain01\User01 lub wprowadź obiekt PSCredential wygenerowany przez polecenie cmdlet Get-Credential
.
Jeśli nie określono parametru credential
Typ: | PSCredential |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-DcomAuthentication
Określa poziom uwierzytelniania, który jest używany dla połączenia usługi WMI.
Restart-Computer
używa usługi WMI.
Prawidłowe wartości to:
- wywołania: uwierzytelnianie COM na poziomie połączenia
- Connect: uwierzytelnianie COM na poziomie połączenia
- domyślne: uwierzytelnianie systemu Windows
- Brak: brak uwierzytelniania COM
- pakiet: uwierzytelnianie COM na poziomie pakietów.
- PacketIntegrity: uwierzytelnianie COM na poziomie integralności pakietów
- PacketPrivacy: uwierzytelnianie COM na poziomie prywatności pakietów.
- niezmienione: poziom uwierzytelniania jest taki sam jak poprzednie polecenie.
Aby uzyskać więcej informacji, zobacz AuthenticationLevel Enumeration.
Ten parametr jest wprowadzany w programie Windows PowerShell 3.0.
Typ: | AuthenticationLevel |
Aliasy: | Authentication |
Dopuszczalne wartości: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Delay
Określa częstotliwość zapytań w sekundach. Program PowerShell wysyła zapytanie do usługi określonej przez parametr Dla w celu określenia, czy usługa jest dostępna po ponownym uruchomieniu komputera.
Ten parametr jest prawidłowy tylko razem z parametrami Wait i For.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Jeśli parametr Delay nie jest określony, Restart-Computer
używa pięciu sekund opóźnienia.
Typ: | Int16 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-For
Określa zachowanie programu PowerShell w oczekiwaniu na udostępnienie określonej usługi lub funkcji po ponownym uruchomieniu komputera. Ten parametr jest prawidłowy tylko z parametrem Wait.
Dopuszczalne wartości tego parametru to:
- domyślne: czeka na ponowne uruchomienie programu PowerShell.
- programu PowerShell: można uruchamiać polecenia w sesji zdalnej programu PowerShell na komputerze.
- WMI: otrzymuje odpowiedź na zapytanie Win32_ComputerSystem dla komputera.
- usługi WinRM: może ustanowić sesję zdalną na komputerze przy użyciu usługi WS-Management.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | WaitForServiceTypes |
Dopuszczalne wartości: | Wmi, WinRM, PowerShell |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Force
Wymusza natychmiastowe ponowne uruchomienie komputera.
Typ: | SwitchParameter |
Aliasy: | f |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Impersonation
Określa poziom personifikacji używany przez to polecenie cmdlet do wywoływania usługi WMI.
Restart-Computer
używa usługi WMI.
Dopuszczalne wartości tego parametru to:
- domyślne: personifikacja domyślna. Pomimo nazwy nie jest to wartość domyślna.
- anonimowe: ukrywa tożsamość obiektu wywołującego.
- Identyfikowanie: umożliwia obiektom wykonywanie zapytań dotyczących poświadczeń obiektu wywołującego.
- Personifikuj: umożliwia obiektom używanie poświadczeń obiektu wywołującego.
Typ: | ImpersonationLevel |
Dopuszczalne wartości: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Protocol
Określa protokół używany do ponownego uruchamiania komputerów. Prawidłowe wartości to WSMan i DCOM.
Ten parametr jest wprowadzany w programie Windows PowerShell 3.0.
Typ: | String |
Dopuszczalne wartości: | DCOM, WSMan |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ThrottleLimit
Określa maksymalną liczbę połączeń współbieżnych, które można ustanowić w celu uruchomienia tego polecenia. Limit ograniczania ma zastosowanie tylko do bieżącego polecenia, a nie do sesji ani do komputera.
Jeśli parametr ThrottleLimit nie zostanie określony lub zostanie użyta wartość 0, Restart-Computer
używa maksymalnie 32 połączeń współbieżnych.
Typ: | Int |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Timeout
Określa czas trwania oczekiwania w sekundach. Gdy upłynął limit czasu, Restart-Computer
powróci do wiersza polecenia, nawet jeśli komputery nie są ponownie uruchamiane.
Parametr limitu czasu
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | Int |
Aliasy: | TimeoutSec |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Wait
Restart-Computer
pomija monit programu PowerShell i blokuje potok do momentu ponownego uruchomienia komputerów. Tego parametru można użyć w skryscie, aby ponownie uruchomić komputery, a następnie kontynuować przetwarzanie po zakończeniu ponownego uruchamiania.
Parametr Wait czeka na ponowne uruchomienie komputerów na czas nieokreślony. Możesz użyć limitu czasu
Parametr Wait jest nieprawidłowy podczas ponownego uruchamiania komputera lokalnego. Jeśli wartość parametru ComputerName zawiera nazwy komputerów zdalnych i komputera lokalnego, Restart-Computer
generuje błąd braku zakończenia dla Wait na komputerze lokalnym, ale czeka na ponowne uruchomienie komputerów zdalnych.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WhatIf
Pokazuje, co się stanie w przypadku uruchomienia Restart-Computer
. Polecenie cmdlet Restart-Computer
nie jest uruchamiane.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WsmanAuthentication
Określa mechanizm używany do uwierzytelniania poświadczeń użytkownika. Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Dopuszczalne wartości tego parametru to: Basic, CredSSP, Default, Digest, Kerberosi Negotiate.
Aby uzyskać więcej informacji, zobacz AuthenticationMechanism.
Ostrzeżenie
Uwierzytelnianie dostawcy usług zabezpieczeń poświadczeń (CredSSP), w którym poświadczenia użytkownika są przekazywane do komputera zdalnego do uwierzytelnienia, jest przeznaczone dla poleceń wymagających uwierzytelniania w więcej niż jednym zasobie, takich jak uzyskiwanie dostępu do zdalnego udziału sieciowego. Ten mechanizm zwiększa ryzyko bezpieczeństwa operacji zdalnej. W przypadku naruszenia zabezpieczeń komputera zdalnego poświadczenia przekazywane do niego mogą służyć do kontrolowania sesji sieciowej.
Typ: | String |
Dopuszczalne wartości: | Basic, CredSSP, Default, Digest, Kerberos, Negotiate |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Restart-Computer
akceptuje nazwy komputerów z potoku lub zmiennych.
W programie Windows PowerShell 2.0 parametr ComputerName pobiera dane wejściowe z potoku tylko według nazwy właściwości. W programie Windows PowerShell 3.0 i nowszych parametr ComputerName pobiera dane wejściowe z potoku według wartości.
Dane wyjściowe
None, System.Management.Automation.RemotingJob
Jeśli określisz parametr AsJob, Restart-Computer
zwróci obiekt zadania. W przeciwnym razie żadne dane wyjściowe nie są generowane.
Uwagi
-
Restart-Computer
działają tylko na komputerach z systemem Windows i wymagają zamknięcia systemu WinRM i WMI, w tym systemu lokalnego. -
Restart-Computer
używa metody Win32Shutdown klasy instrumentacji zarządzania Windows (WMI) Win32_OperatingSystem.
W programie Windows PowerShell 2.0 parametr AsJob nie działa niezawodnie podczas ponownego uruchamiania lub zatrzymywania komputerów zdalnych. W programie Windows PowerShell 3.0 implementacja została zmieniona, aby rozwiązać ten problem.