Stop-Computer
Zatrzymuje (zamyka) komputery lokalne i zdalne.
Składnia
Stop-Computer
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie cmdlet Stop-Computer zdalnie wyłącza komputery. Może również zamknąć komputer lokalny.
Możesz użyć parametrów Stop-Computer , aby uruchomić operacje zamykania jako zadanie w tle, aby określić poziomy uwierzytelniania i alternatywne poświadczenia, aby ograniczyć współbieżne połączenia, które są tworzone w celu uruchomienia polecenia, i wymusić natychmiastowe zamknięcie.
To polecenie cmdlet nie wymaga Windows PowerShell komunikacji zdalnej, chyba że używasz parametru AsJob.
Przykłady
Przykład 1: Zamykanie komputera lokalnego
PS C:\> Stop-Computer
To polecenie powoduje zamknięcie komputera lokalnego.
Przykład 2: Zamykanie dwóch komputerów zdalnych i komputera lokalnego
PS C:\> Stop-Computer -ComputerName "Server01", "Server02", "localhost"
To polecenie zatrzymuje dwa komputery zdalne, Server01 i Server02 i komputer lokalny, zidentyfikowane jako localhost.
Przykład 3: Zamykanie komputerów zdalnych jako zadania w tle
PS C:\> $j = Stop-Computer -ComputerName "Server01", "Server02" -AsJob
PS C:\> $results = $j | Receive-Job
PS C:\> $results
Te polecenia uruchamiają polecenie Zatrzymaj komputer jako zadanie w tle na dwóch komputerach zdalnych, a następnie pobierają wyniki.
Pierwsze polecenie określa parametr AsJob , aby uruchomić polecenie jako zadanie w tle. Polecenie zapisuje wynikowy obiekt zadania w zmiennej $j.
Drugie polecenie używa operatora potoku do wysyłania obiektu zadania w $j do polecenia Receive-Job, który pobiera wyniki zadania. Polecenie zapisuje wyniki w zmiennej $results.
Trzecie polecenie wyświetla wynik zapisany w zmiennej $results.
Ponieważ zadanie AsJob tworzy zadanie na komputerze lokalnym i automatycznie zwraca wyniki na komputerze lokalnym, możesz uruchomić polecenie Receive-Job jako polecenie lokalne.
Przykład 4: Zamykanie komputera zdalnego
PS C:\> Stop-Computer -CompupterName "Server01" -Impersonation anonymous -Authentication PacketIntegrity
To polecenie zatrzymuje komputer zdalny Server01. Polecenie używa dostosowanych ustawień personifikacji i uwierzytelniania.
Przykład 5:
PS C:\> $s = Get-Content Domain01.txt
PS C:\> $c = Get-Credential domain01\admin01
PS C:\> Stop-Computer -ComputerName $s -Force -ThrottleLimit 10 -Credential $c
Te polecenia wymuszają natychmiastowe zamknięcie wszystkich komputerów w domenie 01.
Pierwsze polecenie pobiera listę komputerów w domenie, a następnie zapisuje je w zmiennej $s.
Drugie polecenie pobiera poświadczenia administratora domeny, a następnie zapisuje je w zmiennej $c.
Trzecie polecenie zamyka komputery. Używa parametru ComputerName do przesyłania listy komputerów w zmiennej $s, parametru Force w celu wymuszenia natychmiastowego zamknięcia i parametru Credential do przesłania poświadczeń zapisanych w zmiennej $c. Używa również parametru ThrottleLimit , aby ograniczyć polecenie do 10 współbieżnych połączeń.
Parametry
-AsJob
Wskazuje, że to polecenie cmdlet jest uruchamiane jako zadanie w tle.
Aby użyć tego parametru, komputery lokalne i zdalne muszą być skonfigurowane do komunikacji zdalnej, a w systemie Windows Vista i nowszych wersjach systemu operacyjnego Windows należy otworzyć Windows 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 uzyskać wyniki zadania, użyj polecenia cmdlet Receive-Job.
Aby uzyskać więcej informacji na temat zadań Windows PowerShell w tle, zobacz about_Jobs i about_Remote_Jobs.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Określa komputery do zatrzymania. Wartością domyślną jest komputer lokalny.
Wpisz nazwę NETBIOS, adres IP lub w pełni kwalifikowaną nazwę domeny co najmniej jednego komputera na liście rozdzielanej przecinkami. Aby określić komputer lokalny, wpisz nazwę komputera lub localhost.
Ten parametr nie polega na Windows PowerShell komunikacji zdalniej. Można użyć parametru ComputerName , nawet jeśli komputer nie jest skonfigurowany do uruchamiania poleceń zdalnych.
Type: | String[] |
Aliases: | CN, __SERVER, Server, IPAddress |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 , taki jak jeden z Get-Credential polecenia cmdlet.
Type: | PSCredential |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DcomAuthentication
Określa poziom uwierzytelniania używany przez to polecenie cmdlet z usługą WMI. Zatrzymaj komputer używa usługi WMI. Dopuszczalne wartości dla tego parametru to:
- Domyślne. Uwierzytelnianie systemu Windows
- Brak. Brak uwierzytelniania COM
- Połącz. Uwierzytelnianie COM na poziomie połączenia
- Wywołanie. Uwierzytelnianie COM na poziomie wywołań
- Pakietów. 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. Tak samo jak w poprzednim poleceniu
Wartość domyślna to Pakiet.
Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationLevel Enumeration (Wyliczenie AuthenticationLevel ) w bibliotece MSDN.
Type: | AuthenticationLevel |
Aliases: | Authentication |
Accepted values: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Wymusza natychmiastowe zamknięcie komputerów.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Impersonation
Określa poziom personifikacji do użycia, gdy to polecenie cmdlet wywołuje usługę WMI. Zatrzymaj komputer używa usługi WMI. Dopuszczalne wartości dla tego parametru to:
- Domyślne. Personifikacja domyślna.
- Anonimowy. Ukrywa tożsamość obiektu wywołującego.
- Identyfikacji. Umożliwia obiektom wykonywanie zapytań dotyczących poświadczeń obiektu wywołującego.
- Personifikować. Umożliwia obiektom używanie poświadczeń obiektu wywołującego.
Wartość domyślna to Personifikuj.
Type: | ImpersonationLevel |
Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Protocol
Określa protokół używany do ponownego uruchamiania komputerów. Dopuszczalne wartości tego parametru to: WSMan i DCOM. Wartość domyślna to DCOM.
Ten parametr został wprowadzony w Windows PowerShell 3.0.
Type: | String |
Accepted values: | DCOM, WSMan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ThrottleLimit
Określa maksymalną liczbę połączeń współbieżnych, które można ustanowić, aby uruchomić to polecenie. Jeśli pominiesz ten parametr lub wprowadzisz wartość 0, zostanie użyta wartość domyślna 32.
Limit ograniczania dotyczy tylko bieżącego polecenia, a nie sesji lub komputera.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WsmanAuthentication
Określa mechanizm używany do uwierzytelniania poświadczeń użytkownika, gdy to polecenie cmdlet używa protokołu WSMan. Dopuszczalne wartości dla tego parametru to:
- Podstawowa
- Protokół CredSSP
- Default
- Szyfrowane
- Kerberos
- Negocjować.
Wartość domyślna to Domyślna.
Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationMechanism Enumeration (Wyliczenie AuthenticationMechanism ) w bibliotece MSDN.
Uwaga: 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.
Ten parametr został wprowadzony w Windows PowerShell 3.0.
Type: | String |
Accepted values: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
None
Nie można przekazać danych wejściowych potoku do tego polecenia cmdlet.
Dane wyjściowe
None or System.Management.Automation.RemotingJob
Polecenie cmdlet zwraca obiekt System.Management.Automation.RemotingJob , jeśli określisz parametr AsJob . W przeciwnym razie nie generuje żadnych danych wyjściowych.
Uwagi
- To polecenie cmdlet używa metody Win32Shutdown klasy Win32_OperatingSystem WMI.
- W Windows PowerShell 2.0 parametr AsJob nie działa niezawodnie podczas ponownego uruchamiania/zatrzymywania komputerów zdalnych. W Windows PowerShell 3.0 implementacja została zmieniona, aby rozwiązać ten problem.