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 参数以将命令作为后台作业运行。 该命令将生成的 job 对象保存在 $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。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ComputerName
指定要停止的计算机。 默认值为本地计算机。
在逗号分隔的列表中,键入一个或多个计算机的 NETBIOS 名称、IP 地址或完全限定的域名。 若要指定本地计算机,请键入计算机名称或 localhost。
此参数不依赖于 Windows 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),或输入 PSCredential 对象(如 Get-Credential cmdlet 中的对象)。
类型: | PSCredential |
Position: | 1 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DcomAuthentication
指定此 cmdlet 用于 WMI 的身份验证级别。 Stop-Computer 使用 WMI。 此参数的可接受值为:
- 违约。 Windows 身份验证
- 没有。 无 COM 身份验证
- 连接。 连接级 COM 身份验证
- 叫。 调用级 COM 身份验证
- 包。 数据包级 COM 身份验证
- PacketIntegrity 的 Packet Integrity 中。 数据包完整性级 COM 身份验证
- PacketPrivacy 的 Packet Privacy 中。 数据包隐私级 COM 身份验证
- 不变。 与前一个命令相同
默认值为 Packet。
有关此参数的值的更多信息,请参见 MSDN Library 中的 AuthenticationLevel Enumeration 。
类型: | AuthenticationLevel |
别名: | Authentication |
接受的值: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Force
强制立即关闭计算机。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Impersonation
指定此 cmdlet 调用 WMI 时使用的模拟级别。 Stop-Computer 使用 WMI。 此参数的可接受值为:
- 违约。 默认模拟。
- 匿名。 隐藏调用方的身份。
- 识别。 允许对象查询调用方凭据。
- 模拟。 允许对象使用调用方凭据。
默认值为 Impersonate。
类型: | ImpersonationLevel |
接受的值: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Protocol
指定用于重新启动计算机的协议。 此参数的可接受值为:WSMan 和 DCOM。 默认值为 DCOM。
此参数是在 Windows PowerShell 3.0 中引入的。
类型: | String |
接受的值: | DCOM, WSMan |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ThrottleLimit
指定可建立以运行此命令的最大并发连接数。 如果省略此参数或输入值 0,则使用默认值 32。
限制限制仅适用于当前命令,不适用于会话或计算机。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 命令脚本未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WsmanAuthentication
指定此 cmdlet 使用 WSMan 协议时用于对用户凭据进行身份验证的机制。 此参数的可接受值为:
- 基本
- CredSSP
- 违约
- 摘要
- Kerberos
- 谈判。
默认值为 Default。
有关此参数的值的详细信息,请参阅 MSDN 库中 AuthenticationMechanism 枚举。
注意:在凭据安全服务提供程序 (CredSSP) 身份验证中,用户凭据传递到远程计算机中以进行验证,这种验证用于要求对多个资源(例如访问远程网络共享)进行验证的命令。 此机制会增加远程操作的安全风险。 如果远程计算机遭到入侵,则传递给它的凭据可用于控制网络会话。
此参数是在 Windows PowerShell 3.0 中引入的。
类型: | String |
接受的值: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | 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 中,实现已更改以解决此问题。