Stop-Computer

Arresta (spegne) computer locali e remoti.

Sintassi

Stop-Computer
    [-WsmanAuthentication <String>]
    [[-ComputerName] <String[]>]
    [[-Credential] <PSCredential>]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Descrizione

Il Stop-Computer cmdlet arresta il computer locale e i computer remoti.

È possibile usare i parametri di per specificare i livelli di Stop-Computer autenticazione e le credenziali alternative e per forzare un arresto immediato.

In PowerShell 7.1 Stop-Computer è stato aggiunto per Linux e macOS. I parametri non hanno alcun effetto su queste piattaforme. Il cmdlet chiama semplicemente il comando /sbin/shutdownnativo .

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 utilizza 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 viene Stop-Computer eseguito come processo in background in due computer remoti.

L'operatore & in background esegue il Stop-Computer comando come processo in background. Per altre informazioni, vedere about_Operators.

$j = Stop-Computer -ComputerName "Server01", "Server02" &
$results = $j | Receive-Job
$results

Stop-Computer utilizza 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 $j variabile .

Gli oggetti processo nella $j variabile vengono inviati alla pipeline a Receive-Job, che ottiene i risultati del processo. Gli oggetti vengono archiviati nella $results variabile . La $results variabile 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 utilizza il parametro ComputerName 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 $s variabile .

Get-Credential usa il parametro Credential per specificare le credenziali di un amministratore di dominio. Le credenziali vengono archiviate nella $c variabile .

Stop-Computer arresta i computer specificati con l'elenco di computer del parametro ComputerName nella $s variabile . Il parametro Force forza un arresto immediato. Il parametro Credential invia le credenziali salvate nella $c variabile.

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 sulla comunicazione remota di PowerShell. È possibile usare il parametro ComputerName anche se il computer non è configurato per l'esecuzione di comandi remoti.

Type:String[]
Aliases:CN, __SERVER, Server, IPAddress
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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\User01, oppure immettere un oggetto PSCredential generato dal Get-Credential cmdlet. 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 altre informazioni sulla protezione dei dati SecureString , vedere How secure is SecureString?.

Type:PSCredential
Position:1
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Forza un arresto immediato del computer.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WsmanAuthentication

Specifica il meccanismo utilizzato per autenticare le credenziali utente quando questo cmdlet usa il protocollo WSMan. Il valore predefinito è Default.

I valori validi per questo parametro sono:

  • Di base
  • CredSSP
  • Default
  • Digest
  • 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 per la sicurezza dell'operazione remota. Se infatti il computer remoto viene compromesso, le credenziali che gli vengono passate possono essere usate per controllare la sessione di rete.

Questo parametro è stato introdotto in PowerShell 3.0.

Type:String
Accepted values:Default, Basic, Negotiate, CredSSP, Digest, Kerberos
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

Questo cmdlet usa il Win32Shutdown metodo della Win32_OperatingSystem classe WMI. Questo metodo richiede che il SeShutdownPrivilege privilegio sia abilitato per l'account utente usato per arrestare il computer.

In PowerShell 7.1 Stop-Computer è stato aggiunto per Linux e macOS. Per queste piattaforme, il cmdlet chiama il comando /sbin/shutdownnativo .