Restart-Computer是在PowerShell 2.0中被引入的,它可以帮助们重启电脑,尤其是在执行一些反复生效操作的时候尤为有用。
不过在PowerShell 3.0中,Restart-Computer得到了更进一步的改进,我们先来比较下两个版本之间的参数有哪些不同:
>>>PowerShell 2.0
PS C:\Users> Get-Help Restart-Computer -Parameter *|Group-Object -NoElement -Property Name
Count Name
----- ----
1 AsJob
1 Authentication
1 ComputerName
1 Credential
1 Force
1 Impersonation
1 ThrottleLimit
1 Confirm
1 WhatIf
>>>PowerShell 3.0
PS C:\Users\Administrator> Get-Help Restart-Computer -Parameter *|Group-Object -NoElement -Property Name
Count Name
----- ----
1 AsJob
1 ComputerName
1 Credential
1 Delay
1 For
1 Force
1 Impersonation
1 ThrottleLimit
1 Timeout
1 Wait
1 DcomAuthentication
1 Protocol
1 WsmanAuthentication
1 Confirm
1 WhatIf
大家可以发现,V3中比V2中多了6个命令。分别是:
Count Name
----- ----
1 Delay
1 For
1 Timeout
1 Wait
1 Protocol
1 WsmanAuthentication
我们接下来来说说,一些常用的新参数的作用:
Restart-Computer -ComputerName Server201201 -Wait
我们可以看到,当我们将如上执行语句放入脚本后并同时指定了Wait参数后,他将一直等待计算机重启,然后在重启完成后再继续处理后续操作。
Restart-Computer -ComputerName 192.168.61.41 -Timeout 10 -Wait
我们也可以同时使用Timeout参数配合Wait参数一起使用。
Timeout的作用是指定等待的持续时间,以秒为单位。
再来看看下面一个例子:
Restart-Computer -ComputerName 157.60.61.41 -Delay 5 -Wait -For PowerShell
这条命令里我们用到了For和Delay参数,他们必须搭配Wait参数一起使用。
在说明该命令的实际用途之前,我们先来看看 官方对他的解释:
-For<WaitForServiceTypes>
一直处于等待状态,直至指定的服务或功能在计算机重新启动后变得可用。指定一个有效值。此参数只有在与 Wait 参数一起使用时才有效。
有效值包括:
-- Default:等待 Windows PowerShell 重新启动。
-- PowerShell:可以在计算机的 Windows PowerShell 远程会话中运行命令。
-- WMI:接收对计算机的 Win32_ComputerSystem 查询的回复。
-- WinRM:可以通过使用 WS-Management 建立与计算机的远程会话。
所以如上命令,我们用For制定了PowerShell服务类型,并且用Delay指定的服务执行查询的频率为5秒。