Restart-Computer
在本地和远程计算机上重启作系统。
语法
Restart-Computer
[-WsmanAuthentication <String>]
[[-ComputerName] <String[]>]
[[-Credential]<PSCredential>]
[-Force]
[-Wait]
[-Timeout <Int32>]
[-For <WaitForServiceTypes>]
[-Delay <Int16>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
此 cmdlet 仅在 Windows 平台上可用。
Restart-Computer
cmdlet 在本地和远程计算机上重启作系统。
可以使用 Restart-Computer
的参数来运行重启作、指定身份验证级别和备用凭据、限制同时运行的作以及强制立即重启。
从 Windows PowerShell 3.0 开始,可以等待重启完成,然后再运行下一个命令。 指定等待超时和查询间隔,并等待特定服务在重启的计算机上可用。 此功能使在脚本和函数中使用 Restart-Computer
变得实用。
示例
示例 1:重启本地计算机
Restart-Computer
重启本地计算机。
Restart-Computer
示例 2:重启多台计算机
Restart-Computer
可以重启远程计算机和本地计算机。
ComputerName 参数接受计算机名称数组。
Restart-Computer -ComputerName Server01, Server02, localhost
示例 3:从文本文件获取计算机名称
Restart-Computer
从文本文件中获取计算机名称列表并重启计算机。 未指定 ComputerName 参数。 但由于它是第一个位置参数,因此它接受从管道发送的文本文件中的计算机名称。
Get-Content -Path C:\Domain01.txt | Restart-Computer
Get-Content
使用 Path 参数从文本文件中获取计算机名称列表,Domain01.txt。 计算机名称会向下发送管道。
Restart-Computer
重启每台计算机。
示例 4:强制重启文本文件中列出的计算机
此示例强制立即重启 Domain01.txt
文件中列出的计算机。 文本文件中的计算机名称存储在变量中。
Force 参数强制立即重启。
$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force
Get-Content
使用 Path 参数从文本文件中获取计算机名称列表,Domain01.txt。 计算机名称存储在变量 $Names
中。
Get-Credential
提示输入用户名和密码,并将值存储在变量 $Creds
中。
Restart-Computer
使用 ComputerName,并使用其变量 Credential 参数。
Force 参数会导致立即重启每台计算机。
示例 6:重启远程计算机并等待 PowerShell
Restart-Computer
重启远程计算机,然后等待最多 5 分钟(300 秒)让 PowerShell 在重启的计算机上可用,然后再继续。
Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2
Restart-Computer
使用 ComputerName 参数来指定 Server01。
Wait 参数等待重启完成。
For 指定 PowerShell 可以在远程计算机上运行命令。
Timeout 参数指定五分钟的等待。
Delay 参数每隔两秒查询远程计算机,以确定它是否已重启。
示例 7:使用 WsmanAuthentication 重启计算机
Restart-Computer
使用 WsmanAuthentication 机制重启远程计算机。
Kerberos 身份验证确定当前用户是否有权重启远程计算机。 有关详细信息,请参阅 AuthenticationMechanism。
Restart-Computer -ComputerName Server01 -WsmanAuthentication Kerberos
Restart-Computer
使用 ComputerName 参数来指定远程计算机,Server01。
WsmanAuthentication 参数将身份验证方法指定为 Kerberos。
参数
-ComputerName
指定一个计算机名称或以逗号分隔的计算机名称数组。
Restart-Computer
接受管道或变量中的 ComputerName 对象。
键入 NetBIOS 名称、IP 地址或远程计算机的完全限定域名。 若要指定本地计算机,请键入计算机名称、点 .
或 localhost。
此参数不依赖于 PowerShell 远程处理。 即使计算机未配置为运行远程命令,也可以使用 ComputerName 参数。
如果未指定 ComputerName 参数,Restart-Computer
重启本地计算机。
类型: | String[] |
别名: | CN, __SERVER, Server, IPAddress |
Position: | 0 |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Confirm
在运行 Restart-Computer
之前,提示你进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
指定有权执行此作的用户帐户。 默认值为当前用户。
键入用户名(如 User01 或 Domain01\User01),或输入由 cmdlet 生成的 Get-Credential
对象。 如果键入用户名,系统会提示输入密码。
凭据存储在 PSCredential 对象中,密码存储为 SecureString。
注释
有关 SecureString 数据保护的详细信息,请参阅 SecureString 的安全性如何?。
类型: | PSCredential |
Position: | 1 |
默认值: | Current user |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Delay
指定查询的频率(以秒为单位)。 PowerShell 查询由 For 参数指定的服务,以确定计算机重启后服务是否可用。
此参数仅与 Wait 和 For 参数一起有效。
此参数是在 Windows PowerShell 3.0 中引入的。
如果未指定 Delay 参数,则 Restart-Computer
使用 5 秒的延迟。
类型: | Int16 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-For
指定 PowerShell 的行为,因为它等待指定的服务或功能在计算机重启后变为可用。 此参数仅对 Wait 参数有效。
此参数的可接受值为:
- 默认:等待 PowerShell 重启。
- PowerShell:可以在计算机上的 PowerShell 远程会话中运行命令。
- WMI:接收对计算机的Win32_ComputerSystem查询的答复。
- WinRM:可以使用 WS-Management 与计算机建立远程会话。
此参数是在 Windows PowerShell 3.0 中引入的。
类型: | WaitForServiceTypes |
接受的值: | Wmi, WinRM, PowerShell |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Force
强制立即重启计算机。
类型: | SwitchParameter |
别名: | f |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Timeout
指定等待的持续时间(以秒为单位)。 超时时间过后,即使计算机未重启,Restart-Computer
也会返回到命令提示符。
Timeout 参数仅对 Wait 参数有效。 超时 替代 Wait 参数的无限期等待期。
此参数是在 Windows PowerShell 3.0 中引入的。
类型: | Int32 |
别名: | TimeoutSec |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Wait
Restart-Computer
禁止显示 PowerShell 提示符,并阻止管道,直到计算机重启。 可以在脚本中使用此参数来重新启动计算机,然后在重启完成后继续处理。
Wait 参数无限期等待计算机重启。 可以使用 超时 来调整计时和 For 和 Delay 参数,等待特定服务在重启的计算机上可用。
重新启动本地计算机时,Wait 参数无效。 如果 ComputerName 参数的值包含远程计算机和本地计算机的名称,则 Restart-Computer
为本地计算机上的 Wait 生成非终止错误,但等待远程计算机重启。
此参数是在 Windows PowerShell 3.0 中引入的。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示 Restart-Computer
运行时会发生什么情况。
Restart-Computer
cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WsmanAuthentication
指定用于对用户凭据进行身份验证的机制。 此参数是在 Windows PowerShell 3.0 中引入的。
此参数的可接受值为:Basic、CredSSP、Default、Digest、Kerberos和 Negotiate。
有关详细信息,请参阅 AuthenticationMechanism。
警告
凭据安全服务提供程序(CredSSP)身份验证(其中用户凭据传递到要进行身份验证的远程计算机)旨在用于需要对多个资源进行身份验证的命令,例如访问远程网络共享。 此机制会增加远程作的安全风险。 如果远程计算机遭到入侵,则传递给它的凭据可用于控制网络会话。
类型: | String |
接受的值: | Basic, CredSSP, Default, Digest, Kerberos, Negotiate |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将包含计算机名称的字符串传递给此 cmdlet。
输出
None
此 cmdlet 不返回任何输出。
备注
- 在 Windows 中,
Restart-Computer
使用 Windows Management Instrumentation Win32_OperatingSystem 类的 Win32Shutdown 方法。 此方法要求为用于重启计算机的用户帐户启用 SeShutdownPrivilege 特权。 - 在 Linux 和 macOS 上,
Restart-Computer
使用/sbin/shutdown
bash 工具。