Condividi tramite


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.