【发布时间】:2023-03-24 03:49:02
【问题描述】:
我们正在清理我们的服务器环境,需要找到所有过期的证书并将其删除。环境由Windows 2008 R2、Windows 2012、Windows 2012 R2服务器组成
我尝试了几个不起作用的已发布脚本,它们只是说已完成而没有输出。我尝试了一篇发表在 stackoverflow 上的文章:Powershell Script to remove expired certificates。我也尝试了下面的一些脚本,但没有运气。使用指纹是可以的,但我需要删除所有过期的证书
'''
按指纹删除
获取子项证书:\LocalMachine\My\D20159B7772E33A6A33E436C938C6FE764367396 |删除项目
按主题/序列号/发行人/随便删除
获取子项证书:\LocalMachine\My | Where-Object { $_.Subject -match 'Frode F' } | 除去项目 ''' ''' $today = 获取日期 获取子项证书:\CurrentUser\My | Where-Object NotAfter -lt $today | 删除项目
或
获取子项证书:\CurrentUser\My | ForEach-Object -begin { $now = get-date } -process { if ($PSItem.NotAfter -lt $now ) { $PSItem } } | 除去项目 '''
我想要实现的是删除列表中所有服务器上的所有过期证书,利用引用文本文件中服务器列表的 foreach 语句,然后删除并删除从昨天日期和更早日期过期的所有证书
你们能想到的任何东西都会对我有很大帮助
非常感谢任何帮助
【问题讨论】:
标签: powershell certificate ssl-certificate