如何在域中所有服务器的个人存储中列出证书

问题描述 投票:0回答:1

我需要获取我的域中所有服务器的个人存储中的所有证书的列表。我目前正在使用以下 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 发行者

powershell for-loop certificate export-to-csv windows-server-2019
1个回答
0
投票

我不太确定从哪里开始,您的脚本将无法按原样运行。您必须将

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}}
© www.soinside.com 2019 - 2024. All rights reserved.