首页 > 解决方案 > 在 Windows PowerShell 中获取应用程序和签名者的列表

问题描述

我正在尝试获取程序列表、它们在文件系统中的路径以及它们的签名。我当前的脚本返回程序及其路径,但签名者字段在所有情况下都是空的。我需要解决什么问题?

脚本:

Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App 
Paths\*"  |
Where-Object {$_."(default)" -ne $null} |
Select-Object @{ expression={$_.PSChildName}; label='Program'} ,
@{expression={$q + $_."(default)" +$q}; label='Path'}, 
@{expression={Get-AuthenticodeSignature $_.("default") }; label='Signer'}

标签: windowspowershell

解决方案


对于签名者,您的括号在引号的错误一侧。

采用:

@{expression={Get-AuthenticodeSignature $_."(default)" }; label='Signer'}

您还可以像这样获取有关证书(例如颁发者)的更多信息:

@{expression={$(Get-AuthenticodeSignature $_."(default)").SignerCertificate.Issuer }; label='Signer'}

推荐阅读