Condividi tramite


Stop-Computer

Arresta (arresta) computer locali e remoti.

Sintassi

Stop-Computer
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [[-ComputerName] <String[]>]
    [[-Credential] <PSCredential>]
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-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 eseguire le operazioni di arresto come processo in background, per specificare i livelli di autenticazione e le credenziali alternative, per limitare le connessioni simultanee create per eseguire il comando e per forzare l'arresto immediato.

Questo cmdlet non richiede la comunicazione remota di PowerShell a meno che non si usi il parametro AsJob.

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.

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

Stop-Computer usa il parametro ComputerName per specificare due computer remoti. Il parametro asjob 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.

Poiché AsJob crea il processo nel computer locale e restituisce automaticamente i risultati al computer locale, è possibile eseguire Receive-Job come comando locale.

Esempio 4: Arrestare un computer remoto

In questo esempio viene arrestato un computer remoto usando l'autenticazione specificata.

Stop-Computer -ComputerName "Server01" -Impersonation Anonymous -DcomAuthentication PacketIntegrity

Stop-Computer usa il parametro nomecomputer per specificare il computer remoto. Il parametro rappresentazione specifica una rappresentazione personalizzata e il parametro DcomAuthentication specifica le impostazioni a livello di autenticazione.

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 -ThrottleLimit 10 -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 ThrottleLimit limita il comando a 10 connessioni simultanee. Il parametro credenziali invia le credenziali salvate nella variabile $c.

Parametri

-AsJob

Indica che questo cmdlet viene eseguito come processo in background.

Per usare questo parametro, i computer locali e remoti devono essere configurati per la comunicazione remota e, in Windows Vista e versioni successive del sistema operativo Windows, è necessario aprire PowerShell usando l'opzione Esegui come amministratore. Per altre informazioni, vedere about_Remote_Requirements.

Quando si specifica il parametro AsJob , il comando restituisce immediatamente un oggetto che rappresenta il processo in background. È possibile continuare a lavorare nella sessione mentre il processo viene completato. Il processo viene creato nel computer locale e i risultati dei computer remoti vengono restituiti automaticamente al computer locale. Per ottenere i risultati del processo, usare il Receive-Job cmdlet .

Per altre informazioni sui processi in background di PowerShell, vedere about_Jobs e about_Remote_Jobs.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-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.

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?.

Tipo:PSCredential
Posizione:1
Valore predefinito:Current user
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DcomAuthentication

Specifica il livello di autenticazione usato da questo cmdlet con WMI. Test-Connection usa WMI. Il valore predefinito è Packet.

I valori accettabili per questo parametro sono:

  • predefinita: autenticazione di Windows.
  • Nessuna: nessuna autenticazione COM.
  • Connect: autenticazione COM a livello di connessione.
  • Chiamare: autenticazione COM a livello di chiamata.
  • pacchetti: autenticazione COM a livello di pacchetto.
  • PacketIntegrity: autenticazione COM a livello di integrità dei pacchetti.
  • PacketPrivacy: autenticazione COM a livello di privacy dei pacchetti.
  • Non modificato: uguale al comando precedente.

Per altre informazioni sui valori di questo parametro, vedere AuthenticationLevel.

Tipo:AuthenticationLevel
Alias:Authentication
Valori accettati:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Posizione:Named
Valore predefinito:Packet
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Force

Forza un arresto immediato del computer.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Impersonation

Specifica il livello di rappresentazione da utilizzare quando questo cmdlet chiama WMI. Il valore predefinito è Impersonate.

Test-Connection usa WMI. I valori accettabili per questo parametro sono:

  • predefinita: rappresentazione predefinita.
  • anonimo: nasconde l'identità del chiamante.
  • Identificare: consente agli oggetti di eseguire query sulle credenziali del chiamante.
  • Rappresenta: consente agli oggetti di usare le credenziali del chiamante.
Tipo:ImpersonationLevel
Valori accettati:Default, Anonymous, Identify, Impersonate, Delegate
Posizione:Named
Valore predefinito:Impersonate
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Protocol

Specifica il protocollo da utilizzare per riavviare i computer. I valori accettabili per questo parametro sono: WSMan e DCOM. Il valore predefinito è DCOM.

Questo parametro è stato introdotto in PowerShell 3.0.

Tipo:String
Valori accettati:DCOM, WSMan
Posizione:Named
Valore predefinito:DCOM
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ThrottleLimit

Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire il comando. Se si omette questo parametro o si immette un valore pari a 0, viene usato il valore predefinito 32.

Questo valore limite si applica solo al comando corrente, non alla sessione o al computer.

Tipo:Int32
Posizione:Named
Valore predefinito:None
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.

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

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

System.Management.Automation.RemotingJob

Quando si usa il parametro asJob di, questo cmdlet restituisce un oggetto remotingJob.

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.