Как упомянул Lee_Dailey, вы можете получить эту информацию из ключа удаления в реестре.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Далее вы получите Имя и GUID приложений, установленных с записью в ключе удаления. -match "^{.+}$"
возвращает только записи, которые начинаются с {
и заканчиваются }
. Если вы хотите вывод GUID без фигурных скобок {}
, вы можете привести его к [GUID]
, например, [GUID][String]$matches.Values
.
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall |
%{
if(($_.Name | Split-Path -Leaf) -match "^{.+}$")
{
[PSCustomObject]@{
GUID = [String]$matches.Values
Name = [String]($_ | Get-ItemProperty -ErrorAction SilentlyContinue).DisplayName
}
}
}
Выходы:
GUID Name
---- ----
{0CA4BB37-FF4A-42C6-A39C-11CB0BB8D395} Microsoft .NET Core Host - 2.1.8 (x64)
{1657ABEE-7D56-416A-B7E0-A89CC5AAD0F7} Microsoft Azure Compute Emulator - v2.9.6
...