我会找例子来慢慢的逐渐深入的带大家进入powershell的世界,今天我们学的是 关于powershell2.0版本和3.0版本对于重启计算机指令的更新的几个新参数比较。


属于图形化界面的朋友们 对于重新启动计算机不会很陌生,但是如果要是使用powershell如何做到呢?


比起早期版本的PowerShell 2.0中重新启动计算机重新启动计算机,新的3.0版本powershell cmdlet将提供更好的灵活性和控制的管理。

PowerShell脚本,需要间歇性重启远程计算机之间执行一个脚本来处理此cmdlet在新版本中有更好的控制。

- 在PowerShell 3.0,重新启动计算机有15个参数,除常见的参数


- PowerShell 2.0中总共有9个参数重新启动计算机指令(win7的是自带powershell2.0哦)



PS C:\Users\Administrator> get-help Restart-Computer | Select -ExpandProperty parameters |
>> select -ExpandProperty parameter | measure-object
>>
Count    : 9
Average  :
Sum      :
Maximum  :
Minimum  :
Property :


CANTGIS已经做好了一个小的Excel工作表来比较重新启动计算机新的和旧的参数指令

从cantgis这个小表我们可以看出PowerShell 3.0中有6个重新启动计算机的身份验证参数更名为DcomAuthentication


重新启动计算机指令 cmdlet,允许我们作为后台作业运行重新启动操作。

此cmdlet的Windows PowerShell 3.0中的辉煌的功能之一,我们可以等待重启完成后,再运行下一个命令,指定一个等待超时和查询间隔,等待特定的服务,可在重新启动计算机。

这一特性使得它的实际使用重新启动计算机需要重新启动电脑之间执行的脚本。

我们也可以使用WSMAN协议,重新启动计算机,DCOM调用被阻塞的情况下通过防火墙规则或企业策略。

PowerShell 2.0中,此功能不可用。现在,让我们来谈谈一些很酷的功能,可用的PowerShell 3.0中引入的新的参数设置。

示例 重新启动计算机

我们可以在脚本中使用此参数,重新启动计算机,然后继续处理完成后重新启动。

等待参数默认情况下,会无限期地等待电脑重新启动,但我们可以使用Timeout参数指定持续时间的等待和延迟参数等特定服务。

3.0新参数之-Wait

Restart-Computer-ComputerNameServer01 -Wait

此命令说明 我现在要重新启动的是 远程计算机Server01,并等待。

默认情况下,它会检查WMI,WinRM的,和PowerShell连接移动到下一行脚本。

下面我贴出这个cantgis的远程计算机示例图他会默认进行WMI,WinRM的检查,PowerShell连接,建立返回我的PowerShell提示符


3.0新参数之-For

总结上面这个参数是有效的只有等待参数。有效值为:

  • 默认:等待重新启动Windows PowerShell的计算机

  • PowerShell的:可以运行在电脑上的Windows PowerShell远程会话命令。

  • WMI:接收一个的Win32_ComputerSystem查询的计算机答复。

  • WinRM的:建立一个远程会话的计算机使用WS-Management

现在新推出的powershell ISE在PowerShell 3.0具有智能感知自动填充这些值


此命令重新启动远程计算机Server01和等待,直到WinRM服务是在远程服务器上运行起来。

Restart-Computer-ComputerNameServer01 -Wait-ForWinRM



3.0新参数之超时-Timeout

指定的等待时间的持续时间,以秒为单位。当超时过后,重新启动计算机返回命令提示符下,即使不重新启动计算机。默认值为-1,表示无限期超时。Timeout参数是有效的只有等待参数。

我指定超时时间为10秒,重新启动电脑,我的电脑在10秒内没有重新启动,并花了更长的时间,我立刻返回到PowerShell提示符:

Restart-Computer-ComputerNameServer01 -Wait-ForWinRM -Timeout10

3.0新参数之延迟-Delay

这个参数往往决定所指定的参数,以确定它是否可以重新启动计算机后Windows PowerShell的查询服务。默认值是5(秒),这个参数是有效的只有等待和参数。

下面的PowerShell示例我已经说明相同两个截图,相当于重新启动过程的进度。我已经指定了一个6秒的延迟,所以延迟后每6秒PowerShell的查询为WinRM连接到服务器,直到它能够验证的连接已经成功建立。


3.0新参数之-Protocol

指定要使用的协议重新启动计算机。有效值为WSMAN和DCOM。默认值是DCOM。这些设置旨在为企业基于DCOM重新启动失败,因为被封锁DCOM,如防火墙规则等。

Restart-Computer-ComputerNameServer01 -ProtocolWSMan

此命令重新启动远程计算机Server01和使用WSMAN协议。



3.0新参数之-WsmanAuthentication

指定的机制,是用来验证用户的凭据当使用WSMAN协议。有效值基本CredSSP的,默认情况下,Digest,Kerberos身份,协商。默认值是默认


Restart-Computer-ComputerNameServer01 -WSManAuthenticationKerberos

此命令重新启动远程计算机Server01和使用Kerberos身份验证。如果用户不具有的权限重新启动远程服务器,它会报出一个拒绝访问错误。


好了! 今天 主要学习了 新的参数关于重新启动计算机,相信大家已经了解并且掌握了相关技术操作。