Scenario : Windows Server Operating Systems (2008 R2, 2012, 2012 R2, 2016)
Issue : Managing the Windows Updates for multiple servers is a complex task. This can be simplified using PowerShell.
Michal Gajda from Microsoft forum has done a wonderful job by creating custom PowerShell Module for Managing windows updates thru PowerShell.
Link for the Module : https://goo.gl/qJHorX
Description : The PSWindowsUpdate module allow you to manage Windows Update on your computer. Module contain set of function to check, download and install or remove update from local machine. Especially useful on machines in core edition like Windows Server 2008 R2 or later.
Steps :
- Download : Download the ZIP from above link ( https://goo.gl/qJHorX).
- Module can be installed manually by downloading Zip file and extract in two places:
- %USERPROFILE%\Documents\WindowsPowerShell\Modules
- %WINDIR%\System32\WindowsPowerShell\v1.0\Modules
Importing the module
PS > Import-Module PSWindowsUpdateEnable RemoteExecution on Servers where you are going to Deploy Updates using following PowerShell Command
Set-ExecutionPolicy RemoteSignedInvoke following command to Initiate the Installation of Tool on Remote Computer and Install the Latest available updates.
Invoke-WUInstall -ComputerName encxenlic.encnet.com -Script {ipmo PSWindowsUpdate; Get-WUInstall -AcceptAll -Force | Out-File -Append C:\PerfLogs\PSWindowsUpdate.log } -Confirm:$false –Verbose
Above command will copy module files on Remote Computer.
It will remotely install the PSWindowsUpdate module
Execute Download and Update the Windows Update command
It will NOT Restart the Windows Server
It will save/append log file on the Path C:\PerfLogs\PSWindowsUpdate.logYou can check the Windows Update status after sometime.
Only Issue which I encountered is, it will not produce any log in the Event Log (System) and in Recently Installed updates.