Stop-Computer
Arresta (arresta) computer locali e remoti.
Sintassi
Stop-Computer
[-WsmanAuthentication <String>]
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il cmdlet Stop-Computer
arresta il computer locale e i computer remoti.
È possibile usare i parametri di Stop-Computer
per specificare i livelli di autenticazione e le credenziali alternative e per forzare l'arresto immediato.
In PowerShell 7.1 è stato aggiunto Stop-Computer
per Linux e macOS. Le piattaforme non Windows hanno solo i parametri WhatIf, Confirm e CommonParameters . Il cmdlet chiama semplicemente il comando nativo /sbin/shutdown
.
Esempio
Esempio 1: Arrestare il computer locale
In questo esempio viene arrestato il computer locale.
Stop-Computer -ComputerName localhost
Esempio 2: Arrestare due computer remoti e il computer locale
In questo esempio vengono arrestati due computer remoti e il computer locale.
Stop-Computer -ComputerName "Server01", "Server02", "localhost"
Stop-Computer
usa il parametro ComputerName per specificare due computer remoti e il computer locale. Ogni computer viene arrestato.
Esempio 3: Arrestare i computer remoti come processo in background
In questo esempio, Stop-Computer
viene eseguito come processo in background in due computer remoti.
L'operatore in background &
esegue il comando Stop-Computer
come processo in background. Per ulteriori informazioni, vedere about_Operators.
$j = Stop-Computer -ComputerName "Server01", "Server02" &
$results = $j | Receive-Job
$results
Stop-Computer
usa il parametro ComputerName per specificare due computer remoti. L'operatore in background &
esegue il comando come processo in background. Gli oggetti processo vengono archiviati nella variabile $j
.
Gli oggetti processo nella variabile $j
vengono inviati nella pipeline a Receive-Job
, che ottiene i risultati del processo. Gli oggetti vengono archiviati nella variabile $results
. La variabile $results
visualizza le informazioni sul processo nella console di PowerShell.
Esempio 4: Arrestare un computer remoto
In questo esempio viene arrestato un computer remoto usando l'autenticazione specificata.
Stop-Computer -ComputerName "Server01" -WsmanAuthentication Kerberos
Stop-Computer
usa il parametro nomecomputer per specificare il computer remoto. Il parametro WsmanAuthentication specifica l'uso di Kerberos per stabilire una connessione remota.
Esempio 5: Arrestare i computer in un dominio
In questo esempio, i comandi forzano l'arresto immediato di tutti i computer in un dominio specificato.
$s = Get-Content -Path ./Domain01.txt
$c = Get-Credential -Credential Domain01\Admin01
Stop-Computer -ComputerName $s -Force -Credential $c
Get-Content
usa il parametro Path per ottenere un file nella directory corrente con l'elenco dei computer di dominio. Gli oggetti vengono archiviati nella variabile $s
.
Get-Credential
usa il parametro credenziali per specificare le credenziali di un amministratore di dominio. Le credenziali vengono archiviate nella variabile $c
.
Stop-Computer
arresta i computer specificati con l'elenco dei computer NomeComputer nella variabile $s
. Il parametro Force forza un arresto immediato. Il parametro credenziali invia le credenziali salvate nella variabile $c
.
Parametri
-ComputerName
Specifica i computer da arrestare. Il valore predefinito è il computer locale.
Digitare il nome NETBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer in un elenco delimitato da virgole. Per specificare il computer locale, digitare il nome del computer o localhost.
Questo parametro non si basa sul remoting di PowerShell. È possibile usare il parametro ComputerName anche se il computer non è configurato per eseguire comandi remoti.
Questo parametro è disponibile solo nelle piattaforme Windows.
Tipo: | String[] |
Alias: | CN, __SERVER, Server, IPAddress |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Credential
Specifica un account utente autorizzato a eseguire questa azione. Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio User01 o Domain01\User01oppure immettere un oggetto PSCredential generato dal cmdlet Get-Credential
. Se si digita un nome utente, viene richiesto di immettere la password.
Le credenziali vengono archiviate in un oggetto PSCredential e la password viene archiviata come SecureString.
Nota
Per ulteriori informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro SecureString?.
Questo parametro è disponibile solo nelle piattaforme Windows.
Tipo: | PSCredential |
Posizione: | 1 |
Valore predefinito: | Current user |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Force
Forza un arresto immediato del computer.
Questo parametro è disponibile solo nelle piattaforme Windows.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Mostra cosa accadrebbe se il cmdlet viene eseguito. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WsmanAuthentication
Specifica il meccanismo utilizzato per autenticare le credenziali utente quando questo cmdlet usa il protocollo WSMan. Il valore predefinito è Default.
I valori accettabili per questo parametro sono:
- Di base
- CredSSP
- Valore predefinito
- Riassunto
- Kerberos
- Negoziare.
Per altre informazioni sui valori di questo parametro, vedere AuthenticationMechanism.
Attenzione
L'autenticazione CredSSP (Credential Security Service Provider), in cui le credenziali utente vengono passate a un computer remoto da autenticare, è progettato per i comandi che richiedono l'autenticazione su più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio di sicurezza dell'operazione remota. Se il computer remoto viene compromesso, è possibile usare le credenziali passate per controllare la sessione di rete.
Questo parametro è stato introdotto in PowerShell 3.0. Questo parametro è disponibile solo nelle piattaforme Windows.
Tipo: | String |
Valori accettati: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Posizione: | Named |
Valore predefinito: | Default |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None
Gli oggetti non possono essere inviati tramite pipe a questo cmdlet.
Output
None
Questo cmdlet non restituisce alcun output.
Note
Questo cmdlet usa il metodo win32Shutdown della classe WMI Win32_OperatingSystem. Questo metodo richiede che il privilegio SeShutdownPrivilege
sia abilitato per l'account utente usato per arrestare il computer.
In PowerShell 7.1 è stato aggiunto Stop-Computer
per Linux e macOS. Per queste piattaforme, il cmdlet chiama il comando nativo /sbin/shutdown
.