Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ProductData = @(
- [PSCustomObject]@{Name = 'Windows Software Development Kit - Windows 10.0.18362.1'; AdditionalUninstallArgument ='' }
- [PSCustomObject]@{Name = 'WebViewer Plugin'; AdditionalUninstallArgument ='REBOOT=ReallySuppress' }
- [PSCustomObject]@{Name = 'msi'; AdditionalUninstallArgument ='REBOOT=ReallySuppress' }
- )
- $UKeys = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
- 'HKLM:\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Uninstall\*'
- foreach ($UKey in $UKeys)
- {
- foreach ($Product in (Get-ItemProperty $UKey))
- {
- if ($null -ne ($ProductData.Name | ? { $Product.DisplayName -eq $_ }) )
- {
- #Display Name is in our ProductData. One to take action on.
- $Product.DisplayName
- #Get any additional argument for the application as defined in ProductData
- $additionalArgument = $ProductData.Where{$_.Name -eq $Product.DisplayName}.AdditionalUninstallArgument
- if ($Product.UninstallString -like "msiexec*") #MSI based - case insensitive match to see if it requires msiexec to remove.
- {
- $ProductCode = $Product.PSChildName #can use the key name as it's the ProductCode.
- write-host "msiexec","/qn","/X$ProductCode","REBOOT=ReallySuppress"
- Start-Process -Wait -NoNewWindow -FilePath "msiexec.exe" -ArgumentList "/qn","/X$ProductCode","REBOOT=ReallySuppress" -RedirectStandardOutput "NUL"
- }
- else #non MSI
- {
- if ($Product.QuietUninstallString) #THere is a quiet uninstall string for this product, helpful!
- {
- write-host "QuietUninstallString: " $Product.QuietUninstallString
- & $env:ComSpec /c $Product.QuietUninstallString
- }
- else
- {
- write-host "UninstallString: " $Product.UninstallString
- if ($additionalArgument)
- {
- write-host $Product.UninstallString $additionalArgument
- & $env:ComSpec /c $Product.UninstallString $additionalArgument
- }
- else
- {
- write-host $Product.UninstallString
- & $env:ComSpec /c $Product.UninstallString
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement