通过使用下面的代码,我可以获得当前服务器中即将过期的证书的数量。如何修改此代码以获取多个远程服务器上 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"
根据您的要求,您需要从 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 虚拟机中运行脚本