当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell:证书即将过期时提醒我

作者:精品下载站 日期:2024-12-14 07:29:39 浏览:13 分类:玩电脑

PowerShell:证书即将过期时提醒我


过期的证书很麻烦。对于 Web 服务器,当用户尝试打开网页时,会显示不受信任的连接来表明这一点。我们将在本文中一起更改此设置,并确保找到即将过期的证书。

目标

简而言之,我将提供几行代码,用于从所有加入域的服务器检索将在不到或等于 30 天的时间内过期的所有证书。

结果是显示服务器名称、证书和到期日期的输出。

[玩转系统] PowerShell:证书即将过期时提醒我

代码

以下代码按名称检索所有 Windows 服务器。然后建立远程连接以检索将在小于或等于 30 天后过期的所有证书。所有信息都收集在一个对象中,输出将显示在控制台窗口中。


$servers=(Get-ADComputer -Filter {operatingsystem -like '*server*'}).Name

$result=@()

foreach ($i in $servers)

{

$ErrorActionPreference="SilentlyContinue"

$a=Invoke-Command -ComputerName $i {Get-ChildItem Cert:\LocalMachine\My -Recurse |
Where-Object {$_ -is [System.Security.Cryptography.X509Certificates.X509Certificate2] -and $_.NotAfter -gt (Get-Date) -and $_.NotAfter -lt (Get-Date).AddDays(30)}

}

foreach ($c in $a) {

$result+=New-Object -TypeName PSObject -Property ([ordered]@{
'Server'=$i;
'Certificate'=$c.Issuer;
'Expires'=$c.NotAfter

})

}

}

Write-Output $result

在 PowerShell ISE 中运行此代码以测试您环境中的功能。

我还建议将代码放入计划任务中。该计划任务应该定期运行。您可以发送电子邮件,而不是将输出写入控制台。

如果这是您想要的方式,只需按照我的文章 PowerShell:当 Windows 服务器上的磁盘空间不足时提醒我(电子邮件通知)即可,您可以在其中找到用于配置电子邮件通知和创建计划任务的模板。

下次使用 PowerShell 和自动化再见……

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯