ค้นหาเว็บไซต์

PowerShell: แจ้งเตือนฉันเมื่อใบรับรองหมดอายุเร็วๆ นี้


ใบรับรองที่หมดอายุเป็นสิ่งที่น่ารำคาญ ในกรณีของเว็บเซิร์ฟเวอร์ สิ่งนี้จะถูกระบุด้วยการแสดงการเชื่อมต่อที่ไม่น่าเชื่อถือเมื่อผู้ใช้พยายามเปิดหน้าเว็บ เราจะเปลี่ยนแปลงสิ่งนี้ร่วมกันในบทความนี้ และตรวจสอบให้แน่ใจว่าเราพบใบรับรองที่จะหมดอายุเร็วๆ นี้

เป้าหมาย

กล่าวโดยสรุป ฉันจะให้โค้ดสองสามบรรทัดเพื่อดึงใบรับรองทั้งหมดจากเซิร์ฟเวอร์ที่เข้าร่วมโดเมนทั้งหมด ซึ่งจะหมดอายุในเวลาน้อยกว่าหรือเท่ากับ 30 วัน

ผลลัพธ์คือเอาต์พุตที่แสดงชื่อเซิร์ฟเวอร์ ใบรับรอง และวันหมดอายุ

รหัส

รหัสต่อไปนี้ดึงข้อมูลเซิร์ฟเวอร์ 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 และระบบอัตโนมัติ…

บทความที่เกี่ยวข้อง