用于检查多个 Azure 服务器上 90 天后过期的证书的 PowerShell 代码

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

通过使用下面的代码,我可以获得当前服务器中即将过期的证书的数量。如何修改此代码以获取多个远程服务器上 90 天后到期的证书的名称?

# Define an array to store certificate paths
$certPaths = @(
    "Cert:\LocalMachine\My"
 
  
)
# Initialize a counter for certificates expiring soon
$certificatesExpiringSoonCount = 0
# Calculate the date 90 days from now
$expiryThreshold = (Get-Date).AddDays(90)
# Loop through each certificate path
foreach ($certPath in $certPaths) {
    # Get all certificates in the current store
    $certificates = Get-ChildItem -Path $certPath
    #$certificates
    foreach ($cert in $certificates) {
        # Check if the certificate expiry date is in the future and within the next 90 days
        if ($cert.NotAfter -gt (Get-Date) -and $cert.NotAfter -lt $expiryThreshold) {
            # Increment the counter for certificates expiring soon
            $certificatesExpiringSoonCount++
        }
    }
}
# Output the total number of certificates expiring soon
Write-Output "Total number of certificates expiring in 90 days: $certificatesExpiringSoonCount"
powershell automation ssl-certificate certificate-expiry
1个回答
0
投票

根据您的要求,您需要从 Clent VDI 在多个 Azure VM 上运行 PowerShell 脚本。

为了满足您的要求,我建议您可以使用Azure CLI:az vm run-command invoke来运行PowerShell脚本。

例如:

az vm run-command invoke  --command-id RunPowerShellScript --name win-vm -g my-resource-group --scripts @script.ps1 

在运行 Azure CLI 之前,需要运行

az login
命令进行身份验证。您需要确保用于运行 Azure CLI 的帐户有权访问所有 Azure VM。

有关更多详细信息,您可以参考此文档:使用操作运行命令在 Windows 虚拟机中运行脚本

© www.soinside.com 2019 - 2024. All rights reserved.