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 不需要 PowerShell 远程处理。
示例
示例 1:关闭本地计算机
此示例关闭本地计算机。
Stop-Computer -ComputerName localhost
示例 2:关闭两台远程计算机和本地计算机
此示例关闭两台远程计算机和本地计算机。
Stop-Computer -ComputerName "Server01", "Server02", "localhost"
Stop-Computer
使用 ComputerName 参数指定两台远程计算机和本地计算机。 每台计算机都已关闭。
示例 3:关闭远程计算机,作为后台作业运行
在此示例中,Stop-Computer
在两台远程计算机上作为后台作业运行。
$j = Stop-Computer -ComputerName "Server01", "Server02" -AsJob
$results = $j | Receive-Job
$results
Stop-Computer
使用 ComputerName 参数指定两台远程计算机。 AsJob 参数将该命令作为后台作业运行。 作业对象存储在 $j
变量中。
$j
变量中的作业对象将沿着管道发送到 Receive-Job
,从而获取作业结果。 对象存储在 $results
变量中。 $results
变量在 PowerShell 控制台中显示作业信息。
由于 AsJob 在本地计算机上创建作业,并将结果自动返回给本地计算机,所以可将 Receive-Job
作为本地命令运行。
示例 4:关闭远程计算机
此示例使用指定的身份验证关闭远程计算机。
Stop-Computer -ComputerName "Server01" -Impersonation Anonymous -DcomAuthentication PacketIntegrity
Stop-Computer
使用 ComputerName 参数指定远程计算机。 Impersonation 参数指定自定义模拟,DcomAuthentication 参数指定身份验证级别设置。
示例 5:关闭域中的计算机
在此示例中,这些命令强制立即关闭指定域中的所有计算机。
$s = Get-Content -Path ./Domain01.txt
$c = Get-Credential -Credential Domain01\Admin01
Stop-Computer -ComputerName $s -Force -ThrottleLimit 10 -Credential $c
Get-Content
使用 Path 参数获取包含域计算机列表的当前目录中的文件。 对象存储在 $s
变量中。
Get-Credential
使用 Credential 参数指定域管理员的凭据。 凭据存储在 $c
变量中。
Stop-Computer
关闭使用 $s
变量中 ComputerName 参数的计算机列表指定的计算机。 Force 参数强制立即关闭。 参数将该命令限制在 10 个并发连接范围内。 Credential 参数提交 $c
变量中保存的凭据。
参数
-AsJob
指示此 cmdlet 作为后台作业运行。
若要使用此参数,必须为本地计算机和远程计算机配置远程处理,并且在 Windows Vista 以及更高版本的 Windows 操作系统上,还必须使用“以管理员身份运行”选项打开 PowerShell。 有关详细信息,请参阅 about_Remote_Requirements。
指定 AsJob 参数时,该命令立即返回代表后台作业的对象。 当作业完成时,你可以继续在此会话中工作。 作业在本地计算机上创建,并且来自远程计算机的结果将自动返回本地计算机。 若要获取作业结果,请使用 Receive-Job
cmdlet。
有关 PowerShell 后台作业的详细信息,请参阅 about_Jobs 和 about_Remote_Jobs。
类型: | SwitchParameter |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ComputerName
指定要停止的计算机。 默认为本地计算机。
在一个逗号分隔列表中键入一台或多台计算机的 NETBIOS 名称、IP 地址或完全限定的域名。 若要指定本地计算机,请键入计算机名称或“localhost”。
此参数不依赖于 PowerShell 远程处理。 即使计算机未配置为运行远程命令,也可以使用 ComputerName 参数。
类型: | String[] |
别名: | CN, __SERVER, Server, IPAddress |
Position: | 0 |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
指定有权执行此操作的用户帐户。 默认为当前用户。
键入用户名,如 User01 或 Domain01\User01;或输入 Get-Credential
cmdlet 生成的 PSCredential 对象。 如果键入用户名,系统会提示输入密码。
凭据存储在 PSCredential 对象中,密码存储为 SecureString。
注意
有关 SecureString 数据保护的详细信息,请参阅 SecureString 的安全性如何?。
类型: | PSCredential |
Position: | 1 |
默认值: | Current user |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DcomAuthentication
指定此 cmdlet 用于 WMI 的身份验证级别。 Stop-Computer
使用 WMI。 默认值为 Packet。
此参数的可接受值为:
- Default:Windows 身份验证。
- None:无 COM 身份验证。
- Connect:连接级 COM 身份验证。
- Call:调用级 COM 身份验证。
- Packet:数据包级 COM 身份验证。
- PacketIntegrity:数据包完整性级 COM 身份验证。
- PacketPrivacy:数据包隐私级 COM 身份验证。
- Unchanged:与前一个命令相同。
有关此参数的值的详细信息,请参阅 AuthenticationLevel。
类型: | AuthenticationLevel |
别名: | Authentication |
接受的值: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
默认值: | Packet |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Force
强制立即关闭计算机。
类型: | SwitchParameter |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Impersonation
指定此 cmdlet 调用 WMI 时使用的模拟级别。 默认值为 Impersonate。
Stop-Computer
使用 WMI。 此参数的可接受值为:
- Default:默认模拟。
- Anonymous:隐藏调用方的身份。
- Identify:允许对象查询调用方的凭据。
- Impersonate:允许对象使用调用方的凭据。
类型: | ImpersonationLevel |
接受的值: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
默认值: | Impersonate |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Protocol
指定重新启动计算机要使用的协议。 此参数的可接受的值是:WSMan 和 DCOM。 默认值为 DCOM。
此参数是在 PowerShell 3.0 中引入的。
类型: | String |
接受的值: | DCOM, WSMan |
Position: | Named |
默认值: | DCOM |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ThrottleLimit
指定为运行此命令可建立的并发连接的最大数目。 如果省略此参数或输入 0 值,则使用默认值 32。
节流限制仅适用于当前命令,而不适用于会话或计算机。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WsmanAuthentication
指定此 cmdlet 使用 WSMan 协议时用于对用户的凭据进行身份验证的机制。 默认值为 Default。
此参数的可接受值为:
- 基本
- CredSSP
- 默认
- 摘要
- Kerberos
- Negotiate。
有关此参数的值的详细信息,请参阅 AuthenticationMechanism。
注意
在凭据安全服务提供程序 (CredSSP) 身份验证中,用户凭据传递到远程计算机中进行验证,这种验证用于要求对多个资源进行验证的命令(例如访问远程网络共享时使用的命令)。 此机制增加了远程操作的安全风险。 如果远程计算机的安全受到威胁,则传递给该计算机的凭据可用于控制网络会话。
此参数是在 PowerShell 3.0 中引入的。
类型: | String |
接受的值: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Position: | Named |
默认值: | Default |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
None
不能通过管道将对象传递给此 cmdlet。
输出
None
默认情况下,此 cmdlet 不返回任何输出。
System.Management.Automation.RemotingJob
如果使用 AsJob 参数,则此 cmdlet 返回 RemotingJob 对象。
备注
此 cmdlet 使用 Win32_OperatingSystem
WMI 类的 Win32Shutdown
方法。 此方法要求为用于关闭计算机的用户帐户启用 SeShutdownPrivilege
特权。