blob: 01fdbc8233ac2e91d0d8d4115792eb8bdb53a223 [file] [log] [blame]
# https://learn.microsoft.com/en-us/windows/win32/msi/database-tables
param (
$file
)
function printTable {
param (
$msi,
[string]$name,
[int[]]$columns = (1)
)
try {
$view = $msi.OpenView("select * from " + $name)
$view.Execute()
while ($record = $view.Fetch()) {
Write-Host ($name + ": " + ($columns | ForEach-Object {"'" + $record.StringData($_) + "'"}))
}
} catch {}
}
$installer = New-Object -ComObject WindowsInstaller.Installer
$msi = $installer.OpenDatabase($file, 0)
printTable -msi $msi -name "Component" -columns 1,3
printTable -msi $msi -name "Directory" -columns 1,2,3
printTable -msi $msi -name "File" -columns 1,2,3
printTable -msi $msi -name "Shortcut" -columns 1,2,3,4