Stop-Computer
停止(关闭)本地和远程计算机。
语法
Stop-Computer
[-WsmanAuthentication <String>]
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
cmdlet Stop-Computer
关闭本地计算机和远程计算机。
可以使用 的参数 Stop-Computer
指定身份验证级别和备用凭据,并强制立即关闭。
在 PowerShell 7.1 中, Stop-Computer
为 Linux 和 macOS 添加了 。 参数对这些平台没有影响。 cmdlet 只是调用本机命令 /sbin/shutdown
。
示例
示例 1:关闭本地计算机
此示例关闭本地计算机。
Stop-Computer -ComputerName localhost
示例 2:关闭两台远程计算机和本地计算机
此示例停止两台远程计算机和本地计算机。
Stop-Computer -ComputerName "Server01", "Server02", "localhost"
Stop-Computer
使用 ComputerName 参数指定两台远程计算机和本地计算机。 每台计算机都已关闭。
示例 3:关闭远程计算机,作为后台作业运行
在此示例中, Stop-Computer
在两台远程计算机上作为后台作业运行。
后台运算符 &
将 Stop-Computer
命令作为后台作业运行。 有关详细信息,请参阅 about_Operators。
$j = Stop-Computer -ComputerName "Server01", "Server02" &
$results = $j | Receive-Job
$results
Stop-Computer
使用 ComputerName 参数指定两台远程计算机。 后台 &
运算符将命令作为后台作业运行。 作业对象存储在 变量中 $j
。
变量中的 $j
作业对象在管道中向下发送到 Receive-Job
,后者获取作业结果。 对象存储在 变量中 $results
。 变量 $results
在 PowerShell 控制台中显示作业信息。
示例 4:关闭远程计算机
此示例使用指定的身份验证关闭远程计算机。
Stop-Computer -ComputerName "Server01" -WsmanAuthentication Kerberos
Stop-Computer
使用 ComputerName 参数指定远程计算机。 WsmanAuthentication 参数指定使用 Kerberos 建立远程连接。
示例 5:关闭域中的计算机
在此示例中,命令强制立即关闭指定域中的所有计算机。
$s = Get-Content -Path ./Domain01.txt
$c = Get-Credential -Credential Domain01\Admin01
Stop-Computer -ComputerName $s -Force -Credential $c
Get-Content
使用 Path 参数获取当前目录中包含域计算机列表的文件。 对象存储在 变量中 $s
。
Get-Credential
使用 Credential 参数指定域管理员的凭据。 凭据存储在 变量中 $c
。
Stop-Computer
关闭使用变量中 $s
ComputerName 参数的计算机列表指定的计算机。 Force 参数强制立即关闭。 Credential 参数提交保存在 变量中的$c
凭据。
参数
-ComputerName
指定要停止的计算机。 默认为本地计算机。
在一个逗号分隔列表中键入一台或多台计算机的 NETBIOS 名称、IP 地址或完全限定的域名。 若要指定本地计算机,请键入计算机名称或“localhost”。
此参数不依赖于 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,或输入 cmdlet Get-Credential
生成的 PSCredential 对象。 如果键入用户名,系统会提示输入密码。
凭据存储在 PSCredential 对象中,密码存储为 SecureString。
注意
有关 SecureString 数据保护的详细信息,请参阅 SecureString 的安全性如何?。
Type: | PSCredential |
Position: | 1 |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
强制立即关闭计算机。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
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 协议时用于对用户的凭据进行身份验证的机制。 默认值为 Default。
此参数的可接受值为:
- 基本
- CredSSP
- Default
- 摘要
- Kerberos
- Negotiate。
有关此参数的值的详细信息,请参阅 AuthenticationMechanism。
注意
凭据安全服务提供程序 (CredSSP) 身份验证,其中用户凭据将传递给远程计算机以进行身份验证,适用于需要对多个资源进行身份验证的命令,例如访问远程网络共享。 此机制增加了远程操作的安全风险。 如果远程计算机的安全受到威胁,则传递给该计算机的凭据可用于控制网络会话。
此参数是在 PowerShell 3.0 中引入的。
Type: | String |
Accepted values: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Position: | Named |
Default value: | Default |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
None
不能通过管道将对象传递给此 cmdlet。
输出
None
此 cmdlet 不返回任何输出。
备注
此 cmdlet 使用Win32Shutdown
WMI 类的 Win32_OperatingSystem
方法。 此方法要求 SeShutdownPrivilege
为用于关闭计算机的用户帐户启用权限。
在 PowerShell 7.1 中, Stop-Computer
为 Linux 和 macOS 添加了 。 对于这些平台,cmdlet 调用本机命令 /sbin/shutdown
。