Windows Update without Internet Connection

Please refer to the following steps based on WSUS Offline on how to obtain all the Windows 2012 R2 Patches and apply it to Windows Server without having active Internet connection

The document is prepared on 27 Jan, 2015 based on WSUS Offline build 10.3.2 for Windows 2012 R2 patches only

#Download the wsusoffline installation file
$Destination = "c:\temp\"
$UnzipTo = "c:\temp"

#Download the file from Internet
Invoke-WebRequest $Source -OutFile $Destination -Verbose

#Function to unzip the
function unzip($file, $destination)
$shell = new-object -com shell.application
$zip = $shell.NameSpace($file)

foreach($item in $zip.items())

#Unzip the to CC:\temp to "$env:windir\System32\WindowsPowerShell\v1.0\Modules"
unzip -file $Destination -destination $UnzipTo

#Start the program

Only download for “Windows 2012 R2 x64” patches and automatically create a ISO file once the download is completed


let the console open to download all the patches

All patches will be downloaded to “C:\temp\wsusoffline\client” and it consume 2.12GB in my lab once download is completed.



wsusoffline-w63-x64.iso (1.93GB in my hard disk) is created in “C:\temp\wsusoffline\iso” once the download is completed

You can open the log file in “C:\temp\wsusoffline\log\download.txt” to have a look what is happening in detail and we can confirm that wsusoffline is download all patches from

2016-01-28 10:54:41 URL: [6752904/6752904] -> "../client/w63-x64/glb/" [1]

How to apply patch in Windows 2012 R2 using wsusoffline ISO 

I had provision a new Windows 2012 R2 Standard Server (VM) and mount the wsusoffline iso to see how the patches can be applied


Click the “Start” to begin the installation and it will restart few times and autologin to Windows by itself


The server need to be restarted few time to ensure that all the patches had been applied, and you can use the following PowerShell Script to check whether the server is pending for reboot

#Check Windows Update
$key = Get-Item "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -ErrorAction Ignore
if($key -ne $null)
Write-host -ForegroundColor Red "Server is pending for Reboot !!!"
Write-host -ForegroundColor Green "No Reboot is required !!"

Once all the updates had been applied, then, enable the Windows Update to ensure that the Servers will always keep updated

#Record the WUAU settings into an object
$AUSettigns = (New-Object -com "Microsoft.Update.AutoUpdate").Settings

#To enable Windows Update, By default is 1 - Disabled 
$AUSettigns.NotificationLevel = 4

#Save the Setting