Category: Windows Installer, Updates, Patching

Remove All Mitel Software via Powershell
article #1392, updated 51 days ago

All Mitel software names seem to start with that one word “Mitel”. So this:

( Get-WmiObject -Class Win32_Product | Where-Object{$_.Name -like 'Mitel*'} ) | ForEach-Object {
	& msiexec /x $_.IdentifyingNumber /quiet /qn /norestart 
}

appears to do the job nicely.

Categories:      

==============

BCUninstaller, a New Open Source Uninstaller, Very Tech-Friendly
article #1389, updated 65 days ago

Best tool for this I’ve ever seen.

https://www.fosshub.com/Bulk-Crap-Uninstaller.html

Categories:      

==============

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

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

https://github.com/oneget/oneget

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

Categories:      

==============

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

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

https://docs.microsoft.com/en-us/windows/configuration/provisioning-packages/provisioning-create-package

Categories:      

==============

Uninstall Windows applications via command line, by name not GUID
article #1326, updated 407 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.

Categories:      

==============

Clear Windows Installer queue
article #1315, updated 438 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.

Categories:      

==============

Windows 10 Distributed Updates
article #1308, updated 483 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.

https://docs.microsoft.com/en-us/windows/deployment/update/waas-delivery-optimization

Categories:      

==============

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

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

https://support.microsoft.com/en-us/help/10164/fix-windows-update-errors

Categories:      

==============

Windows Updates by Boxstarter via Chocolatey
article #1289, updated 539 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('https://chocolatey.org/install.ps1'))
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.

Categories:      

==============

Get list of installed software in Windows, with uninstall data
article #1275, updated 589 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:

{90160000-008C-0000-0000-0000000FF1CE}

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.

Categories: