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 Stop-Computer
cmdlet zamyka komputer lokalny i komputery zdalne.
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 komunikacji zdalnej programu PowerShell, chyba że używasz parametru AsJob .
Przykłady
Przykład 1: zamykanie komputera lokalnego
W tym przykładzie komputer lokalny jest zamykany.
Stop-Computer -ComputerName localhost
Przykład 2: Zamykanie dwóch komputerów zdalnych i komputera lokalnego
Ten przykład zatrzymuje dwa komputery zdalne i komputer lokalny.
Stop-Computer -ComputerName "Server01", "Server02", "localhost"
Stop-Computer
używa parametru ComputerName do określenia dwóch komputerów zdalnych i komputera lokalnego. Każdy komputer jest zamykany.
Przykład 3. Zamykanie komputerów zdalnych jako zadania w tle
W tym przykładzie Stop-Computer
działa jako zadanie w tle na dwóch komputerach zdalnych.
$j = Stop-Computer -ComputerName "Server01", "Server02" -AsJob
$results = $j | Receive-Job
$results
Stop-Computer
używa parametru ComputerName do określenia dwóch komputerów zdalnych. Parametr AsJob uruchamia polecenie jako zadanie w tle. Obiekty zadania są przechowywane w zmiennej $j
.
Obiekty zadania w zmiennej $j
są wysyłane w dół potoku do Receive-Job
elementu , który pobiera wyniki zadania. Obiekty są przechowywane w zmiennej $results
. Zmienna $results
wyświetla informacje o zadaniu w konsoli programu PowerShell.
Ponieważ zadanie AsJob tworzy zadanie na komputerze lokalnym i automatycznie zwraca wyniki na komputerze lokalnym, można uruchomić Receive-Job
jako polecenie lokalne.
Przykład 4. Zamykanie komputera zdalnego
W tym przykładzie komputer zdalny jest zamykany przy użyciu określonego uwierzytelniania.
Stop-Computer -ComputerName "Server01" -Impersonation Anonymous -DcomAuthentication PacketIntegrity
Stop-Computer
używa parametru ComputerName , aby określić komputer zdalny. Parametr Personifikacja określa niestandardową personifikację, a parametr DcomAuthentication określa ustawienia na poziomie uwierzytelniania.
Przykład 5. Zamykanie komputerów w domenie
W tym przykładzie polecenia wymuszają natychmiastowe zamknięcie wszystkich komputerów w określonej domenie.
$s = Get-Content -Path ./Domain01.txt
$c = Get-Credential -Credential Domain01\Admin01
Stop-Computer -ComputerName $s -Force -ThrottleLimit 10 -Credential $c
Get-Content
używa parametru Ścieżka , aby pobrać plik w bieżącym katalogu z listą komputerów domeny. Obiekty są przechowywane w zmiennej $s
.
Get-Credential
używa parametru Credential w celu określenia poświadczeń administratora domeny. Poświadczenia są przechowywane w zmiennej $c
.
Stop-Computer
wyłącza komputery określone przy użyciu parametru ComputerName listy komputerów w zmiennej $s
. Parametr Force wymusza natychmiastowe zamknięcie. Parametr ThrottleLimit ogranicza polecenie do 10 połączeń współbieżnych. Parametr Credential przesyła poświadczenia zapisane w zmiennej $c
.
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 i, 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 uzyskać wyniki zadania, użyj Receive-Job
polecenia cmdlet .
Aby uzyskać więcej informacji na temat zadań w tle programu PowerShell, zobacz about_Jobs i about_Remote_Jobs.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ComputerName
Określa komputery do zatrzymania. Wartość domyślna to 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 hosta lokalnego.
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.
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 cmdlet.
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 używany przez to polecenie cmdlet z usługą WMI. Stop-Computer
używa usługi WMI. Wartość domyślna to Pakiet.
Dopuszczalne wartości tego parametru to:
- Ustawienie domyślne: Uwierzytelnianie systemu Windows.
- Brak: brak uwierzytelniania COM.
- Połącz: uwierzytelnianie COM na poziomie połączenia.
- Połączenie: Uwierzytelnianie COM na poziomie wywołania.
- 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: takie samo jak poprzednie polecenie.
Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationLevel.
Typ: | AuthenticationLevel |
Aliasy: | Authentication |
Dopuszczalne wartości: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Domyślna wartość: | Packet |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Force
Wymusza natychmiastowe zamknięcie komputera.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Impersonation
Określa poziom personifikacji do użycia, gdy to polecenie cmdlet wywołuje usługę WMI. Wartość domyślna to Personifikuj.
Stop-Computer
używa usługi WMI. Dopuszczalne wartości tego parametru to:
- Ustawienie domyślne: Domyślna personifikacja.
- 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ść: | Impersonate |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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 programie PowerShell 3.0.
Typ: | String |
Dopuszczalne wartości: | DCOM, WSMan |
Position: | Named |
Domyślna wartość: | DCOM |
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. Jeśli pominiesz ten parametr lub wprowadź wartość 0, zostanie użyta wartość domyślna 32.
Limit ograniczania ma zastosowanie tylko do bieżącego polecenia, a nie do sesji ani do komputera.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie 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, gdy to polecenie cmdlet używa protokołu WSMan. Wartość domyślna to Wartość domyślna.
Dopuszczalne wartości tego parametru to:
- Podstawowy
- Protokół CredSSP
- Wartość domyślna
- Trawić
- Kerberos
- Negocjować.
Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationMechanism.
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 programie PowerShell 3.0.
Typ: | String |
Dopuszczalne wartości: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Position: | Named |
Domyślna wartość: | Default |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
None
Nie można potokować obiektów do tego polecenia cmdlet.
Dane wyjściowe
None
Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.
System.Management.Automation.RemotingJob
Jeśli używasz parametru AsJob , to polecenie cmdlet zwraca obiekt RemotingJob .
Uwagi
To polecenie cmdlet używa polecenia cmdlet Win32Shutdown
Win32_OperatingSystem
metoda klasy WMI. Ta metoda wymaga włączenia SeShutdownPrivilege
uprawnień dla konta użytkownika używanego do zamykania maszyny.