Udostępnij za pośrednictwem


Restart-Computer

Uruchamia ponownie system operacyjny na komputerach lokalnych i zdalnych.

Składnia

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>]

Opis

Polecenie Restart-Computer cmdlet uruchamia ponownie system operacyjny na komputerach lokalnych i zdalnych.

Możesz użyć parametrów Restart-Computer , aby uruchomić operacje ponownego uruchomienia jako zadanie w tle, aby określić poziomy uwierzytelniania i alternatywne poświadczenia, aby 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 ze Restart-Computer skryptów i funkcji.

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 Protokół 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 program może 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ą Restart-Computer polecenie jako zadanie w tle na dwóch komputerach zdalnych, a następnie pobierają wyniki.

Ponieważ zadanie AsJob tworzy zadanie na komputerze lokalnym i automatycznie zwraca wyniki na komputerze lokalnym, można uruchomić Receive-Job jako polecenie lokalne.

$Job = Restart-Computer -ComputerName "Server01", "Server02" -AsJob
$Job | Receive-Job

Restart-Computer używa parametru ComputerName do określenia Server01 i Server02. Parametr AsJob uruchamia polecenie jako zadanie w tle. Obiekt zadania jest przechowywany w zmiennej $Job . $Job program jest wysyłany w dół potoku Receive-Job do polecenia cmdlet, 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 do określenia Server01. Parametr Personifikacja określa Wartość Anonimowa, aby ukryć tożsamość 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 Domain01.txt pliku. Nazwy komputerów z pliku tekstowego są przechowywane w zmiennej. Parametr Force wymusza natychmiastowe ponowne uruchomienie, a parametr ThrottleLimit ogranicza liczbę współbieżnych połączeń.

$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force -ThrottleLimit 10

Get-Content używa parametru Path , aby uzyskać listę nazw komputerów z pliku tekstowego, Domain01.txt. Nazwy komputerów są przechowywane w zmiennej $Names. Get-Credential wyświetla monit o podanie nazwy użytkownika i hasła oraz przechowuje wartości w zmiennej $Creds. Restart-Computerużywa parametrów ComputerName i Credential ze swoimi zmiennymi. Parametr Force powoduje natychmiastowe ponowne uruchomienie każdego komputera. Parametr ThrottleLimit ogranicza polecenie do 10 połączeń współbieżnych.

Przykład 6. Ponowne uruchamianie komputera zdalnego i oczekiwanie na program PowerShell

Restart-Computer Uruchamia ponownie 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 do określenia Server01. Parametr Wait czeka na zakończenie ponownego uruchomienia. Dla 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 określić, 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 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-Computerużywa parametru ComputerName, aby określić komputer zdalny Server01. Parametr Protocol określa, aby używać protokołu WSMan. Parametr WsmanAuthentication określa metodę uwierzytelniania jako Kerberos.

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 AsJob polecenie natychmiast zwraca obiekt reprezentujący zadanie w tle. Możesz kontynuować pracę w sesji, gdy zadanie zostanie zakończone. Zadanie jest tworzone na komputerze lokalnym, a wyniki z komputerów zdalnych są automatycznie zwracane do komputera lokalnego. Aby zarządzać zadaniem, użyj poleceń cmdlet zadania . Aby uzyskać wyniki zadania, użyj Receive-Job polecenia cmdlet .

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-Computerakceptuje 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 parametr ComputerName nie zostanie określony, Restart-Computer uruchomi ponownie 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 polecenia 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. Wartość domyślna to użytkownik bieżący.

Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential wygenerowany przez Get-Credential polecenie cmdlet. Jeśli wpiszesz nazwę użytkownika, zostanie wyświetlony monit o wprowadzenie hasła.

Poświadczenia są przechowywane w obiekcie PSCredential , a hasło jest przechowywane jako secureString.

Uwaga

Aby uzyskać więcej informacji na temat ochrony danych SecureString , zobacz Jak bezpieczny jest protokół SecureString?.

Typ:PSCredential
Position:1
Domyślna wartość:Current user
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:

  • Połączenie: Uwierzytelnianie COM na poziomie wywołań
  • Nawiązywanie połączenia: uwierzytelnianie COM na poziomie połączenia
  • Ustawienie 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.
  • Bez zmian: Poziom uwierzytelniania jest taki sam jak poprzednie polecenie.

Aby uzyskać więcej informacji, zobacz AuthenticationLevel, wyliczenie.

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 For , aby określić, 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 zostanie określony, Restart-Computer użyj 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:

  • Ustawienie domyślne: czeka na ponowne uruchomienie programu PowerShell.
  • PowerShell: może uruchamiać polecenia w sesji zdalnej programu PowerShell na komputerze.
  • WMI: otrzymuje odpowiedź na zapytanie Win32_ComputerSystem dla komputera.
  • 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:

  • Ustawienie domyślne: Domyślna personifikacja. Pomimo nazwy nie jest to wartość domyślna.
  • Anonimowy: ukrywa tożsamość obiektu wywołującego.
  • Zidentyfikuj: 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żyje maksymalnie 32 połączeń współbieżnych.

Typ:Int32
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 jest prawidłowy tylko z parametrem Wait . Limit czasu zastępuje nieokreślony okres oczekiwania parametru Wait .

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:Int32
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 przez czas nieokreślony. Możesz użyć limitu czasu, aby dostosować czas, a parametry For i Delay będą czekać na udostępnienie określonych usług na ponownie uruchomionych komputerach.

Parametr Wait nie jest prawidł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 oczekiwania 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 przebiegów Restart-Computer . Polecenie Restart-Computer cmdlet 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, Kerberos i 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

String

Możesz potokować ciąg zawierający nazwę komputera do tego polecenia cmdlet.

Dane wyjściowe

None

Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.

System.Management.Automation.RemotingJob

Gdy używasz parametru AsJob , to polecenie cmdlet zwraca obiekt zadania.

Uwagi

  • Restart-Computer Działają tylko na komputerach z systemem Windows i wymagają usługi WinRM i WMI do zamknięcia systemu, w tym systemu lokalnego.
  • Restart-Computerużywa metody Win32Shutdown klasy Win32_OperatingSystem instrumentacji zarządzania Windows (WMI). Ta metoda wymaga włączenia uprawnień SeShutdownPrivilege dla konta użytkownika użytego do ponownego uruchomienia maszyny.

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.