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 使用 ComputerNameCredential 参数及其变量。 Force 参数会导致立即重启每台计算机。

示例 6:重启远程计算机并等待 PowerShell

Restart-Computer 重启远程计算机,然后在继续操作前最多等待 5 分钟(300 秒),以等待 PowerShell 在重启的计算机上进入可用状态。

Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2

Restart-Computer 使用 ComputerName 参数指定 Server01Wait 参数等待重启完成。 For 指定 PowerShell 可以在远程计算机上运行命令。 Timeout 参数指定五分钟等待。 Delay 参数每隔两秒查询远程计算机,以确定它是否已重启。

示例 7:使用 WsmanAuthentication 重启计算机

Restart-Computer 使用 WsmanAuthentication 机制重启远程计算机。 Kerberos 身份验证确定当前用户是否有权重启远程计算机。 有关详细信息,请参阅 AuthenticationMechanism

Restart-Computer -ComputerName Server01 -WsmanAuthentication Kerberos

Restart-Computer 使用 ComputerName 参数指定远程计算机 Server01WsmanAuthentication 参数将身份验证方法指定为 Kerberos

参数

-ComputerName

指定一个计算机名称或以逗号分隔的计算机名称数组。 Restart-Computer 接受来自管道或变量的 ComputerName 对象。

键入远程计算机的 NetBIOS 名称、IP 地址或完全限定的域名。 若要指定本地计算机,请键入计算机名称、句点 . 或 localhost。

此参数不依赖于 PowerShell 远程处理。 即使计算机未配置为运行远程命令,也可以使用 ComputerName 参数。

如果未指定 ComputerName 参数,Restart-Computer 会重启本地计算机。

Type:String[]
Aliases:CN, __SERVER, Server, IPAddress
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

在运行 Restart-Computer 之前,提示你进行确认。

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

-Delay

指定查询的频率(以秒为单位)。 PowerShell 查询由 For 参数指定的服务,以确定重启计算机后服务是否可用。

此参数只有在与 WaitFor 参数一起使用时才有效。

已在 Windows PowerShell 3.0 中引入了此参数。

如果未指定 Delay 参数,则 Restart-Computer 使用 5 秒的延迟。

Type:Int16
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-For

指定 PowerShell 的行为,因为它等待指定的服务或功能在计算机重启后变为可用。 此参数仅对 Wait 参数有效。

此参数的可接受值为:

  • 默认:等待 PowerShell 重启。
  • PowerShell:可以在计算机上的 PowerShell 远程会话中运行命令。
  • WMI:接收对计算机的 Win32_ComputerSystem 查询的回复。
  • WinRM:可以通过使用 WS-Management 建立与计算机的远程会话。

已在 Windows PowerShell 3.0 中引入了此参数。

Type:WaitForServiceTypes
Accepted values:Wmi, WinRM, PowerShell
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

强制立即重启计算机。

Type:SwitchParameter
Aliases:f
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Timeout

指定等待的持续时间,以秒为单位。 超时时间过后,即使计算机未重启,Restart-Computer 也会返回到命令提示符。

Timeout 参数只有在与 Wait 参数一起使用时才有效。 Timeout 替代 Wait 参数的无限期等待期。

已在 Windows PowerShell 3.0 中引入了此参数。

Type:Int32
Aliases:TimeoutSec
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Wait

Restart-Computer 抑制 PowerShell 提示符并阻止管道,直至计算机重启。 可以在脚本中使用此参数来重启计算机,然后在重启完成后继续处理。

Wait 参数无限期等待计算机重启。 可以使用 Timeout 来调整计时以及 ForDelay 参数,等待特定服务在重启的计算机上可用。

Wait 参数在重启本地计算机期间无效。 如果 ComputerName 参数的值包含远程计算机的名称和本地计算机的名称,则 Restart-Computer 为本地计算机上的 Wait 生成非终止错误,但等待远程计算机重启。

已在 Windows PowerShell 3.0 中引入了此参数。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

显示在 Restart-Computer 运行的情况下将会发生什么。 Restart-Computer cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WsmanAuthentication

指定用于对用户的凭据进行身份验证的机制。 已在 Windows PowerShell 3.0 中引入了此参数。

此参数的可接受值为:BasicCredSSPDefaultDigestKerberosNegotiate

有关详细信息,请参阅 AuthenticationMechanism

警告

在凭据安全服务提供程序 (CredSSP) 身份验证中,用户凭据传递到远程计算机中以进行验证,这种验证用于要求对多个资源(例如访问远程网络共享)进行验证的命令。 此机制增加了远程操作的安全风险。 如果远程计算机的安全受到威胁,则传递给该计算机的凭据可用于控制网络会话。

Type:String
Accepted values:Basic, CredSSP, Default, Digest, Kerberos, Negotiate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

String

可以通过管道将包含计算机名称的字符串传递给此 cmdlet。

输出

None

此 cmdlet 不返回任何输出。

备注

  • 在 Windows 中,Restart-Computer 使用 Windows Management Instrumentation (WMI) Win32_OperatingSystem 类的 Win32Shutdown 方法。 此方法要求为用于重启计算机的用户帐户启用 SeShutdownPrivilege 特权。
  • 在 Linux 和 Mac OS 上,Restart-Computer 使用 /sbin/shutdown bash 工具。