Stop-Computer

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

语法

Stop-Computer
    [-WsmanAuthentication <String>]
    [[-ComputerName] <String[]>]
    [[-Credential] <PSCredential>]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

说明

Stop-Computer cmdlet 关闭本地计算机和远程计算机。

可以使用 Stop-Computer 的参数来指定身份验证级别和备用凭据,并强制立即关闭。

PowerShell 7.1 中添加了针对 Linux 和 macOS 的 Stop-Computer。 这些参数对这些平台没有影响。 此 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

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

键入用户名,如 User01Domain01\User01;或输入 Get-Credential cmdlet 生成的 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
  • 默认
  • 摘要
  • 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 使用 Win32_OperatingSystem WMI 类的 Win32Shutdown 方法。 此方法要求为用于关闭计算机的用户帐户启用 SeShutdownPrivilege 特权。

PowerShell 7.1 中添加了针对 Linux 和 macOS 的 Stop-Computer。 对于这些平台,cmdlet 调用本机命令 /sbin/shutdown