feat: add GetGUIDApp.ps1 utility to help find software GUIDs
This commit is contained in:
56
utils/GetGUIDApp.ps1
Normal file
56
utils/GetGUIDApp.ps1
Normal file
@@ -0,0 +1,56 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Lists installed software and their GUIDs/Registry Keys.
|
||||
|
||||
.DESCRIPTION
|
||||
This script scans the Windows Registry (HKLM and WOW6432Node) for installed applications
|
||||
and outputs their Display Name and Registry Key Name (which is often the MSI GUID).
|
||||
|
||||
Useful for finding the GUID of software to target for uninstallation.
|
||||
|
||||
.PARAMETER Filter
|
||||
Optional string to filter the results by Display Name.
|
||||
|
||||
.EXAMPLE
|
||||
.\GetGUIDApp.ps1
|
||||
Lists all installed software in a grid view.
|
||||
|
||||
.EXAMPLE
|
||||
.\GetGUIDApp.ps1 -Filter "Printer"
|
||||
Lists only software with "Printer" in the name.
|
||||
#>
|
||||
|
||||
param (
|
||||
[string]$Filter = ""
|
||||
)
|
||||
|
||||
$paths = @(
|
||||
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*",
|
||||
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
|
||||
)
|
||||
|
||||
Write-Host "Scanning Registry for Installed Software..." -ForegroundColor Cyan
|
||||
|
||||
$results = @()
|
||||
|
||||
foreach ($path in $paths) {
|
||||
$items = Get-ItemProperty $path -ErrorAction SilentlyContinue
|
||||
foreach ($item in $items) {
|
||||
if (-not [string]::IsNullOrWhiteSpace($item.DisplayName)) {
|
||||
$results += [PSCustomObject]@{
|
||||
DisplayName = $item.DisplayName
|
||||
RegistryKeyName = $item.PSChildName # This is the GUID for MSI apps
|
||||
UninstallString = $item.UninstallString
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (-not [string]::IsNullOrWhiteSpace($Filter)) {
|
||||
Write-Host "Filtering for: '$Filter'" -ForegroundColor Yellow
|
||||
$results = $results | Where-Object { $_.DisplayName -match "(?i)$Filter" }
|
||||
}
|
||||
|
||||
$results | Sort-Object DisplayName | Out-GridView -Title "Installed Software (Select to see details)"
|
||||
|
||||
Write-Host "Done. Check the Grid View window." -ForegroundColor Green
|
||||
Reference in New Issue
Block a user