Param($PackageDir) if ($PSBoundParameters.Count -ne 1) { Write-host "Error: -PackageDir " ;exit 1} If ( -not (Test-Path $packagedir)) { Write-host "Error: -PackageDir does not exist." ;exit 1} $packages = (Get-ChildItem -Path $packagedir| where {$_.extension -eq ".msu"} | Sort Name | %{$_.FullName}) $success = $true if ($packages.Count -gt 0){ Write-Output "Installation of updates is starting... " foreach ($package in $packages){ Start-Process wusa.exe -Wait -ArgumentList "$package /quiet /norestart" if (!($LASTEXITCODE -eq 0)) { $success = $false $package = "+ " + (Get-Item $package).Name + ": Failed" } else { $package = "+ " + (Get-Item $package).Name + ": Success" } Write-Output $package } Write-Output "Finished installing updates." if ($success) { Write-Output "Info: All updates were successfully installed." } else { Write-Output "Info: There are failed updates." } } else { Write-Host "There are no updates (msu)." #Pause exit 0 } if (Test-Path "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired") { Write-Output "Pending reboot. Press Enter to initiate reboot." #Pause Restart-Computer -Force } else { Write-Output "No reboot is required." #Pause } exit 0