背景

昨儿开会,经理打算在公司统一部署PowerShell DSC,当然一个前提是把所有Windows 服务器的PS版本都升级到5.1的版本。现在公司的Windows服务器包括了windows 2008 R2, Windows 2012, Windows2012 R2和Windows 2016。

目标

所有的服务器都需要安装WMF5.1的补丁文件

挑战

WMF5.1根据操作系统的不同,对应了不同的KB版本,分别针对Windows 2008 R2, Windows 2012和 Windows 2012R2 形成了三个版本。windows 2016自带 PS5.1,就无需关注了。

解决方案:

方案1(windows2012和windows2012R2)

对于 Windows 2012和 Windows 2012 R2,这个问题其实很容易解决。他们分别对应的版本是 KB3191564 和 KB3191565, 这两个KB已经在windows update catalog 的网站上了,我们需要做的就是直接导入WSUS即可。

打开WSUS的服务器

统一部署 PowerShell 5.1

Actions 里面选择 Import Updates

统一部署 PowerShell 5.1

自动跳转到下载网页,选择安装ActiveX
统一部署 PowerShell 5.1

搜索对应的KB文件,添加到basket
统一部署 PowerShell 5.1

勾选导入WSUS
统一部署 PowerShell 5.1

下载完成
统一部署 PowerShell 5.1

然后在WSUS里面搜索下载的KB,批准安装即可。
统一部署 PowerShell 5.1

方案2(windows2008R2)

对于windows2008R2 来说,他不支持WSUS直接安装WMF5.1,那么怎么处理呢?我们可以通过传统的组策略+脚本的方式安装。

安装的方式有很多,豆子这次使用PowerShell开机脚本安装。网上有很多现成的安装脚本,豆子就不重复造轮子了,下载一个现成的。
https://gallery.technet.microsoft.com/scriptcenter/PowerShell-to-Install-70009e38

这个脚本可以安装msu文件和exe文件,其实本质就是通过调用wusa.exe。
创建一个新的gpo文件,配置如下。里面那个install-update.ps1就是我下载的现成脚本,后面的参数指定kb名字和安装路径。安装路径一定要确保domain computer有访问的权限,否则会报错access denied。

统一部署 PowerShell 5.1

把这个组策略分配到对应的OU上,重启Windows 2008 R2的服务器,经过漫长的等待,大概15分钟左右,测试一下powershell的版本,发现已经成功更新了。

统一部署 PowerShell 5.1