在我目前的设置中,我有16个生产服务器,另有16到20个Dev和QA服务器。 我也有很多证书。 我们正在努力清理所有事情,以便我们不会错过任何证书到期警报(我们曾经在生产过程中发生过这种情况,并对业务造成了很大的影响)。
我可以去MMC,右键单击每个节点并导出列表,但这对于40多台机器来说太耗时了。 有没有办法让这个自动完成? 任何脚本或工具要这样做?
谢谢,
RV
这个问题可能会被移到另一个StackExchange站点,但我会提供一个答案。
一点PowerShell的魔法应该使这相当简单。 PowerShell可以导航证书存储,就像它是其他任何驱动器一样(例如导航文件系统)。
列出系统上的所有证书:
Get-ChildItem -Path Cert:\ -Recurse
如果您只需要以当前用户身份安装的证书,只需更改“目录”:
Get-ChildItem -Path Cert:\CurrentUser -Recurse
(请注意,上面的命令返回“文件夹”名称,后面是所有包含的证书,这取决于你在做什么,可能会变得混乱。)
我从你的问题中假设你只是真的担心SSL服务器authentication证书,所以你可以专门获得这些(并限制输出只显示证书的主题,path和到期日):
Get-ChildItem -Path Cert:\ -Recurse -SSLServerAuthentication | Select Subject, PSParentPath, NotAfter
然后,您可以查看将列表导出为CSV文件(或数据库或您希望用来收集这些文件的其他方法),然后从一个中央工作站在远程服务器上运行这些文件,并在本地收集所有信息。