Stop (shut down) local and remote computers using WMI.

      Stop-Computer [[-ComputerName] string[]] [[-Credential] PSCredential]
         [-Authentication AuthenticationLevel] [-Impersonation ImpersonationLevel]
            [-AsJob] [-Force] [-ThrottleLimit int] [-Confirm] [-WhatIf] [CommonParameters]

   -Authentication AuthenticationLevel
       The authentication level that is used for the  WMI connection.
       Valid values:
         Default         Windows Authentication.
         None            No COM authentication.
         Connect         Connect-level COM authentication.
         Call            Call-level COM authentication.
         Packet          Packet-level COM authentication.
         PacketIntegrity Packet Integrity-level COM authentication.
         PacketPrivacy   Packet Privacy-level COM authentication.
         Unchanged       The authentication level is the same as the previous command.

   -Impersonation ImpersonationLevel
       The impersonation level to use when calling WMI.
       Valid values:
         Default      Default impersonation.
         Anonymous    Hides the identity of the caller.
         Identify     Allows objects to query the credentials of the caller.
         Impersonate  Allows objects to use the credentials of the caller.

   -ComputerName string[]
       Stop the specified computers. The default is the local computer. 
       Type the NETBIOS name, IP address, or fully qualified domain name of
       one or more computers in a comma-separated list.
       To specify the local computer, type the computername or "localhost".
       This parameter does not rely on PowerShell remoting.

       A user account that has permission to perform this action.
       The default is the current user.

       Force an immediate shut down of the computers.

   -ThrottleLimit int
       The maximum number of concurrent connections that can be established
       to run this command. If this parameter is NULL or 0, the default value, 32, will be used.

       The throttle limit applies only to the current command, not to the session or to the computer.

       Describe the command without actually executing it.

       Prompt for confirmation before executing the command.

To shutdown/restart a computer and also log a Reason Code in the Windows System Event Log, use the SHUTDOWN command.

In PowerShell 7.1, Stop-Computer was added for Linux and macOS. The parameters have no effect on these platforms. The cmdlet is just calling the native command /sbin/shutdown


Shutdown the local computer:

PS C:\> stop-computer

Stop two remote computers, Server64 and Server65, and the local computer:

PS C:\> stop-computer -computername Server64, Server65, localhost

Run a Stop-Computer command as a background job on two remote computers:

PS C:\> $j = stop-computer -computername Server64, Server65 -asjob
PS C:\> $results = $j | receive-job
PS C:\> $results

Run Stop-Computer against a list of computers:

PS C:\> $machines = get-content servers.txt
PS C:\> $creds = get-credential domain64\admin64
PS C:\> stop-computer -computername $machines -force -throttlelimit 10 -credential $creds

“Neither fire nor wind, birth nor death can erase our good deeds” ~ Buddha

Related PowerShell Cmdlets

Restart-Computer - Restart the operating system on a computer.
Checkpoint-Computer - Create a system restore point.

Copyright © 1999-2024
Some rights reserved