Category: Windows Installer, Updates, Patching

New Windows package manager: OneGet
article #1352, updated 179 days ago

This seems to be quite the tool. Haven’t tested it yet.

Can be installed or updated in 10 with: Install-Module -Name PackageManagement -Force



Provisioning Packages in Windows 10
article #1333, updated 274 days ago

These packages bundle configurations, even domain joins, and other items. Native to Windows 10:



Uninstall Windows applications via command line, by name not GUID
article #1326, updated 296 days ago

This command:

wmic product where name="Application Name" call uninstall /nointeractive

appears to do it. Put the whole long name from the software list in Control Panel, within those double parentheses. This works in at least some cases where msiexec /x does not. And it is not version-specific.



Clear Windows Installer queue
article #1315, updated 327 days ago

Sometimes Windows Installer will pile up a queue of items to be installed. These will show up as multiple ‘msiexec’ processes in TASKMGR. To clear them:

msiexec /unregister
taskkill /f /im msiexec.exe
msiexec /regserver

The idea is, first we take Windows Installer offline, then we kill any leftover stalled / queued processes, and lastly, we bring Windows Installer online again. Unless there’s something else in the backgrounds starting more of these things, this will take good care.



Windows 10 Distributed Updates
article #1308, updated 372 days ago

Updates are being distributed to Windows 10 via peer-to-peer methods, in addition to cloud-to-PC. This will be essential to handle the big build files, 4 gigabyte plus, at many sites.



A new Microsoft instruction page for Windows Update troubles
article #1305, updated 388 days ago

Here’s a new one, seems to cover some good ground:



Windows Updates by Boxstarter via Chocolatey
article #1289, updated 428 days ago

Chocolatey is a great way to get a huge variety of software into your Windows machine in a very consistent way. Boxstarter uses Chocolatey for large repeated OS and package setups, both virtual and hardware. Boxstarter has a great Windows update method inside. To call it all via Powershell, one can do this (make sure you’re administrative):

$PSCred = Get-Credential
Set-ExecutionPolicy Bypass -Force
iex ((New-Object System.Net.WebClient).DownloadString(''))
choco install boxstarter -y
choco install boxstarter.chocolatey -y
Install-BoxstarterPackage -PackageName Boxstarter.WindowsUpdate -Credential $PScred

The credential is a local admin to the box, it is there so the updater can run through as many reboots as necessary to get the job done. Please do be aware that this will reboot the machine immediately after setup, and will reboot it repeatedly as needed to get the machine fully up to date. It also installs a public desktop icon called “Boxstarter Shell” which probably will need to be removed.

One can copy all of the above lines into a file, e.g., “winup.ps1”, and then run “.\winup” in an administrative Powershell, it will work very nicely.



Get list of installed software in Windows, with uninstall data
article #1275, updated 478 days ago

This Powershell command does a lot of good:

Get-WMIObject Win32_Product | Sort-Object -Property Name | Format-Table Name, IdentifyingNumber -Wrap

It gets the names, and the long unique install codes (GUIDs), which look something like this:


Usually one can then run this:

MsiExec.exe /x {90160000-008C-0000-0000-0000000FF1CE} /q /qn /norestart

to remove quietly. When this doesn’t work, there is a plan B:

Get-WMIObject Win32_Product | Sort-Object -Property Name | Format-Table Name, LocalPackage -Wrap

which gets the names and the locations of the system-local copies of the MSIs. One should be able to do the same MsiExec command on those too, though this does not always work either.



Windows Updates by Powershell
article #1272, updated 486 days ago

There are a lot of out-of-date and/or flatly wrong web references on this topic, so it seemed like a good thing to start one. Updates are likely.

  • Prerequisites. The page reports minimum Powershell version 3.0, but automatic Powershell Gallery downloads don’t start to get good until 5.1. So this document will say PS 5.1. Administrative Powershell session or equivalent is of course needed.
  • Set up the environment:
Install-PackageProvider -Name NuGet -Force
Install-Module PSWindowsUpdate -Force
Get-Command -Module PSWindowsUpdate
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted -Force
Import-Module PSWindowsUpdate
Add-WUServiceManager -MicrosoftUpdate -Confirm:$false
  • Get list of current Windows updates available to the setup. This respects anything else in place, e.g., WSUS, standard RMM patching system, et cetera.


  • Install with automatic reboot

Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

  • Or, install without automatic reboot

Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot:$false

The beauty of this one, is although it can and will run utterly silently, it gives a marvelously simple Powershell-style progress report, both downloads and install progress, if you are running it in a live window.



DISM Cleans Up Server 2008R2 and Windows 7
article #1158, updated 578 days ago

DISM is great for system image repair in 2012/8.0 and later. But from 2008R2/7 there are lots of things DISM can do to clean up a system. Here’s one:

dism /online /Cleanup-Image /StartComponentCleanup

This does much cleaning up of redundant items in WinSxS. There is also:

dism /online /Cleanup-Image /StartComponentCleanup /ResetBase

but /ResetBase eliminates removal of all patches and updates etcetera, so not necessarily best to use. And we have:

dism /online /Cleanup-Image /SPSuperseded

/SPSuperseded eliminates removal of service packs only.