Stop-Computer

停止(关闭)本地和远程计算机。

语法

Stop-Computer
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [[-ComputerName] <String[]>]
    [[-Credential] <PSCredential>]
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

说明

Stop-Computer cmdlet 远程关闭计算机。 它也可以关闭本地计算机。

可以使用 Stop-Computer 的参数将关闭操作作为后台作业运行、指定身份验证级别和备用凭据、限制为运行命令而创建的并发连接,以及强制立即关闭。

除非使用 AsJob 参数,否则此 cmdlet 不需要Windows PowerShell远程处理。

示例

示例 1:关闭本地计算机

PS C:\> Stop-Computer

此命令关闭本地计算机。

示例 2:关闭两台远程计算机和本地计算机

PS C:\> Stop-Computer -ComputerName "Server01", "Server02", "localhost"

此命令停止两台远程计算机 Server01 和 Server02 以及标识为“localhost”的本地计算机。

示例 3:关闭远程计算机,作为后台作业运行

PS C:\> $j = Stop-Computer -ComputerName "Server01", "Server02" -AsJob
PS C:\> $results = $j | Receive-Job
PS C:\> $results

这些命令在两台远程计算机上将 Stop-Computer 作为后台作业运行,然后获取结果。

第一条命令指定 AsJob 参数将该命令作为后台作业运行。 此命令将生成的作业对象保存在 $j 变量中。

第二条命令使用管道运算符将 $j 中的作业对象发送给 Receive-Job,它将获取作业结果。 该命令将结果保存在 $results 变量中。

第三条命令显示保存在 $results 变量中的结果。

由于 AsJob 在本地计算机上创建作业,并将结果自动返回给本地计算机,所以可将 Receive-Job 作为本地命令运行。

示例 4:关闭远程计算机

PS C:\> Stop-Computer -CompupterName "Server01" -Impersonation anonymous -Authentication PacketIntegrity

此命令停止远程计算机 Server01。 此命令将使用自定义模拟和身份验证设置。

示例 5:

PS C:\> $s = Get-Content Domain01.txt
PS C:\> $c = Get-Credential domain01\admin01
PS C:\> Stop-Computer -ComputerName $s -Force -ThrottleLimit 10 -Credential $c

这些命令强制立即关闭 Domain01 中的所有计算机。

第一条命令获取该域中的计算机列表,然后将其存储在 $s 变量中。

第二条命令获取域管理员的凭据,并将其存储在 $c 变量中。

第三条命令关闭这些计算机。 它使用 ComputerName 参数提交$s变量中的计算机列表,使用 Force 参数强制立即关闭,并使用 Credential 参数提交保存在$c变量中的凭据。 此外,它还使用 ThrottleLimit 参数将该命令限制在 10 个并发连接范围内。

参数

-AsJob

指示此 cmdlet 作为后台作业运行。

若要使用此参数,必须为本地计算机和远程计算机配置远程处理,并且在 Windows Vista 以及更高版本的 Windows 操作系统上,还必须使用“以管理员身份运行”选项打开 Windows PowerShell。 有关详细信息,请参阅 about_Remote_Requirements。

指定 AsJob 参数时,该命令立即返回代表后台作业的对象。 当作业完成时,你可以继续在此会话中工作。 作业在本地计算机上创建,并且来自远程计算机的结果将自动返回本地计算机。 若要获取作业结果,请使用 Receive-Job cmdlet。

有关 Windows PowerShell 后台作业的详细信息,请参阅 about_Jobs 和 about_Remote_Jobs。

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

-ComputerName

指定要停止的计算机。 默认为本地计算机。

在一个逗号分隔列表中键入一台或多台计算机的 NETBIOS 名称、IP 地址或完全限定的域名。 若要指定本地计算机,请键入计算机名称或“localhost”。

此参数不依赖于 Windows PowerShell 远程处理。 即使你的计算机未配置为运行远程命令,你也可以使用 ComputerName 参数。

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

-Confirm

提示你在运行 cmdlet 之前进行确认。

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

-Credential

指定有权执行此操作的用户帐户。 默认为当前用户。

键入用户名(如 User01 或 Domain01\User01),或输入 PSCredential 对象,例如 Get-Credential cmdlet 中的一个。

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

-DcomAuthentication

指定此 cmdlet 用于 WMI 的身份验证级别。 Stop-Computer 使用 WMI。 此参数的可接受值为:

  • 默认。 Windows 身份验证
  • 无。 无 COM 身份验证
  • 连接。 连接级 COM 身份验证
  • Call。 调用级 COM 身份验证
  • Packet。 数据包级 COM 身份验证
  • PacketIntegrity。 数据包完整性级 COM 身份验证
  • PacketPrivacy。 数据包隐私级 COM 身份验证
  • 未更改。 与前一个命令相同

默认值为 Packet。

有关此参数的值的详细信息,请参阅 MSDN 库中的 AuthenticationLevel 枚举

Type:AuthenticationLevel
Aliases:Authentication
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

强制立即关闭计算机。

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

-Impersonation

指定此 cmdlet 调用 WMI 时使用的模拟级别。 Stop-Computer 使用 WMI。 此参数的可接受值为:

  • 默认。 默认模拟。
  • 匿名。 隐藏调用方的身份。
  • Identify。 允许对象查询调用方的凭据。
  • Impersonate。 允许对象使用调用方的凭据。

默认值为“Impersonate”。

Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Protocol

指定重新启动计算机要使用的协议。 此参数的可接受的值是:WSMan 和 DCOM。 默认值为 DCOM。

已在 Windows PowerShell 3.0 中引入了此参数。

Type:String
Accepted values:DCOM, WSMan
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

指定为运行此命令可建立的并发连接的最大数目。 如果省略此参数或输入 0 值,则使用默认值 32。

节流限制仅适用于当前命令,而不适用于会话或计算机。

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

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 此 cmdlet 未运行。

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

-WsmanAuthentication

指定此 cmdlet 使用 WSMan 协议时用于对用户的凭据进行身份验证的机制。 此参数的可接受值为:

  • 基本
  • CredSSP
  • Default
  • 摘要
  • Kerberos
  • Negotiate。

默认值为 Default。

有关此参数的值的详细信息,请参阅 MSDN 库中的 AuthenticationMechanism 枚举

注意:在凭据安全服务提供程序 (CredSSP) 身份验证中,用户凭据传递到远程计算机中以进行验证,这种验证用于要求对多个资源(例如访问远程网络共享)进行验证的命令。 此机制增加了远程操作的安全风险。 如果远程计算机的安全受到威胁,则传递给该计算机的凭据可用于控制网络会话。

已在 Windows PowerShell 3.0 中引入了此参数。

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

输入

None

不能通过管道将输入传递给此 cmdlet。

输出

None or System.Management.Automation.RemotingJob

如果指定 AsJob 参数,该 cmdlet 将返回 System.Management.Automation.RemotingJob 对象。 否则,将不生成任何输出。

备注

  • 此 cmdlet 使用 Win32_OperatingSystem WMI 类的 Win32Shutdown 方法。
  • 在 Windows PowerShell 2.0 中,AsJob 参数在重新启动/停止远程计算机期间不能可靠地运行。 在 Windows PowerShell 3.0 中,为解决此问题,该实现方式有所更改。