停止(关闭)本地和远程计算机。
语法
Stop-Computer [[-ComputerName] <string[]>] [[-Credential] <PSCredential>] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Force] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
说明
Stop-Computer cmdlet 关闭远程计算机。它也可以关闭本地计算机。
可以使用 Stop-Computer 的参数将关闭操作作为后台作业运行,指定身份验证级别和备用凭据,限制为运行该命令而创建的并发连接数以及强制立即关闭。
除非您使用 AsJob 参数,否则此 cmdlet 不需要 Windows PowerShell 远程处理。
参数
-AsJob
将命令作为后台作业运行。
注意:若要使用此参数,必须为本地计算机和远程计算机配置远程处理,并且在 Windows Vista 以及更高版本的 Windows 上,还必须使用“以管理员身份运行”选项打开 Windows PowerShell。有关详细信息,请参阅 about_Remote_Requirements。
使用 AsJob 参数时,此命令立即返回代表后台作业的对象。当作业完成时,您可以继续在此会话中工作。作业在本地计算机上创建,并且来自远程计算机的结果将自动返回本地计算机。要管理作业,请使用 Job cmdlet。要获取作业结果,请使用 Receive-Job cmdlet。
有关 Windows PowerShell 后台作业的详细信息,请参阅 about_Jobs 和 about_Remote_Jobs。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Authentication <AuthenticationLevel>
指定用于 WMI 连接的身份验证级别。(Stop-Computer 使用 WMI。)默认值为 Packet。
有效值包括:
Unchanged: 身份验证级别与前一个命令相同。
Default: Windows 身份验证。
None: 无 COM 身份验证。
Connect: 连接级 COM 身份验证。
Call: 调用级 COM 身份验证。
Packet: 数据包级 COM 身份验证。
PacketIntegrity:数据包完整性级 COM 身份验证。
PacketPrivacy: 数据包隐私级 COM 身份验证。
是否为必需? |
false |
位置? |
named |
默认值 |
4 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-ComputerName <string[]>
停止指定的计算机。默认值为本地计算机。
在一个逗号分隔列表中键入一台或多台计算机的 NETBIOS 名称、IP 地址或完全限定的域名。要指定本地计算机,请键入计算机名称或“localhost”。
此参数不依赖于 Windows PowerShell 远程处理。即使您的计算机未配置为运行远程命令,您也可以使用 ComputerName 参数。
是否为必需? |
false |
位置? |
1 |
默认值 |
. |
是否接受管道输入? |
true (ByPropertyName) |
是否接受通配符? |
false |
-Credential <PSCredential>
指定有权执行此操作的用户帐户。默认值为当前用户。
键入用户名,如“User01”或“Domain01\User01”;或输入 PSCredential 对象,如 Get-Credential cmdlet 输入的一个 PSCredential 对象。
是否为必需? |
false |
位置? |
2 |
默认值 |
Current user |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Force
强制立即关闭计算机。
是否为必需? |
false |
位置? |
named |
默认值 |
False |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Impersonation <ImpersonationLevel>
指定调用 WMI 时使用的模拟级别。(Stop-Computer 使用 WMI。)默认值为“Impersonate”。
有效值包括:
Default: 默认模拟。
Anonymous: 隐藏调用方的身份。
Identify: 允许对象查询调用方的凭据。
Impersonate: 允许对象使用调用方的凭据。
是否为必需? |
false |
位置? |
named |
默认值 |
Impersonate |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-ThrottleLimit <int>
指定为运行此命令可建立的并发连接的最大数目。如果省略此参数或输入 0 值,则使用默认值 32。
节流限制仅适用于当前命令,而不适用于会话或计算机。
是否为必需? |
false |
位置? |
named |
默认值 |
32 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Confirm
在执行命令之前提示您进行确认。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-WhatIf
描述如果执行该命令会发生什么情况(无需实际执行该命令)。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
None 不能通过管道将输入传递给此 cmdlet。 |
输出 |
None 或 System.Management.Automation.RemotingJob 当您使用 AsJob 参数时,该 cmdlet 返回一个作业对象 (System.Management.Automation.RemotingJob)。否则,将不产生任何输出。 |
说明
此 cmdlet 使用 Win32_OperatingSystem WMI 类的 Win32Shutdown 方法。
示例 1
C:\PS>stop-computer 说明 ----------- 此命令关闭本地计算机。
示例 2
C:\PS>stop-computer -computername Server01, Server02, localhost 说明 ----------- 此命令停止两台远程计算机 Server01 和 Server02 以及标识为“localhost”的本地计算机。
示例 3
C:\PS>$j = stop-computer -computername Server01, Server02 -asjob C:\PS> $results = $j | receive-job C:\PS> $results 说明 ----------- 这些命令在两台远程计算机上将 Stop-Computer 命令作为后台作业运行,然后获取结果。 第一条命令使用 AsJob 参数将该命令作为后台作业运行。此命令将生成的作业对象保存在 $j 变量中。 第二条命令使用管道运算符将 $j 中的作业对象发送给 Receive-Job cmdlet,后者将获取作业结果。该命令将结果保存在 $results 变量中。 第三条命令显示保存在 $results 变量中的结果。 因为 AsJob 参数在本地计算机上创建作业,并将结果自动返回给本地计算机,所以您可以将 Receive-Job 命令作为本地命令运行。
示例 4
C:\PS>stop-computer -comp Server01 -impersonation anonymous -authentication PacketIntegrity 说明 ----------- 此命令重新启动远程计算机 Server01。此命令将使用自定义模拟和身份验证设置。
示例 5
C:\PS>$s = get-content domain01.txt C:\PS> $c = get-credential domain01\admin01 C:\PS> stop-computer -computername $s -force -throttlelimit 10 -credential $c 说明 ----------- 这些命令强制立即关闭 Domain01 中的所有计算机。 第一条命令获取该域中计算机的列表,并将该列表保存在 $s 变量中。 第二条命令获取域管理员的凭据,并将这些凭据保存在 $c 变量中。 第三条命令关闭这些计算机。它使用 ComputerName 参数提交 $s 变量中的计算机列表,使用 Force 参数强制立即关闭,并使用 Credential 参数提交保存在 $c 变量中的凭据。此外,它还使用 ThrottleLimit 参数将该命令限制在 10 个并发连接范围内。
另请参阅