我需要获取我的域中所有服务器的个人存储中的所有证书的列表。我目前正在使用以下 powershell 命令,它提供了所需的结果
Get-ChildItem Cert:\localmachine\my | Export-Csv \\filepath\filename.csv
但这需要我进入每个服务器并运行命令。我该如何避免这样做? 我使用以下命令创建了一个包含所有服务器名称的 csv 文件以进行迭代
get-adcomputer -filter * -SearchBase $OUpath | Select-object name | export-csv -NoType $ExportPath
所有服务器都位于特定的 OU 中,这是 %OUPath 变量的值。
这是我尝试过的脚本,但是它没有给我我正在寻找的证书数据。
$OUpath = 'OU=Servers,OU=someOU,DC=somedomain,DC=com'
$ExportPath = '\\filepath\ServerList.csv'
get-adcomputer -filter * -SearchBase $OUpath | Select-object name | export-csv -NoType $ExportPath
import-csv $exportpath
foreach-object{
Get-ChildItem Cert:\localmachine\my | Export-Csv -append -path \\filepath\certlist.csv
}
OU 中有超过 500 台服务器,但文件只有 30 行,并且缺少有关每台服务器证书的相关信息。 我正在寻找以下标题 DnsNameListFriendlyName NotAfter NotBefore HasPrivateKey 发行者
我不太确定从哪里开始,您的脚本将无法按原样运行。您必须将
invoke-command
写入您的脚本中。
这是一条可以帮助您入门的单线:
get-adcomputer -filter * -SearchBase $OUpath | Select-object -expand name | foreach-object {invoke-command -computername $_ -scriptblock {get-childitem Cert:\localmachine\my | select friendlyname, dnsnamelist}}