เบเปเปเบเบปเบเบกเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฐเปเบเบตเบเบซเบเปเบฒเบเบฑเบเบงเบฝเบเบเบฒเบเบเบญเบเบเบฒเบเบเบงเบเบชเบญเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบตเปเบเบทเบเบเปเบญเบเบเบญเบเปเบเบขเบฑเปเบเบขเบทเบเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Windows. เปเบฅเปเบง, เบงเบดเบเบตเบเบตเปเบเปเบญเบเบฅเบธเบเบเบถเปเบเบซเบผเบฑเบเบเบฒเบเปเบเบขเบฑเปเบเบขเบทเบเปเบเปเบเปเบฝเบเปเบเบฑเบเบเบฑเบเบซเบผเบฒเบเบเบฑเปเบ, เปเบเปเบงเบฅเบฒเบเบฑเปเบ, เปเบเบทเปเบญเบเบฎเปเบงเบกเบเบฒเบเบเบตเปเบกเบตเบซเบเบงเบเบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเบเปเปเบเบฒเบเบเปเปเบญเบฒเบเบธเบเบญเบเบเบงเบเปเบเบปเบฒเปเบกเปเบเบขเบนเปเปเบเบงเบฑเบเบเบฑเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบฅเบฒเบงเปเบฅเบฐเบเปเบญเบเบชเบปเบเปเบชเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบฅเบฐเบเบฑเบเบชเบดเบเปเบเบเบดเบเบเปเบฝเบงเบเบฑเบเบกเบฑเบ. เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบเบฐเบเบดเบเบฑเบเบขเปเบฒเบเบเปเบฒเปเบเบญเบเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบก NetXMS, เบกเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเบเบปเปเบเบเปเปเบฅเบฐ, เปเบเบซเบผเบฑเบเบเบฒเบ, เบเบนเปเบชเบฐเบซเบกเบฑเบเบเบฝเบเปเบเปเบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบเบเบตเป.
เปเบเบเบตเปเบชเบธเบเบเบปเบเปเบเปเบฎเบฑเบเปเบกเปเบเปเบเปเบฎเบฑเบเปเบเบฎเบนเบเปเบเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
เปเบฅเบฐเบเบฐเบเบงเบเบเบฒเบเบเบญเบเบกเบฑเบเปเบญเบเบเบฑเบเบชเบทเบเบเปเป.
เปเบ. เบเปเปเบกเบตเบเบปเบงเบเบฑเบเปเบเบเบปเบงเบชเปเบฒเบฅเบฑเบเปเบเบขเบฑเปเบเบขเบทเบเบซเบกเบปเบเบญเบฒเบเบธเปเบ NetXMS, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเบเบปเบงเบเบญเบเบเปเบฒเบเปเบญเบเปเบฅเบฐเปเบเปเบชเบฐเบเบดเบเปเบเบทเปเบญเบชเบฐเบซเบเบญเบเบเปเปเบกเบนเบ. เปเบเปเบเบญเบ, เปเบ Powershell, เบเบตเปเปเบกเปเบ Windows. script เบเบงเบเบญเปเบฒเบเปเบเบขเบฑเปเบเบขเบทเบเบเบฑเบเบซเบกเบปเบเปเบเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ, เปเบญเบปเบฒเบงเบฑเบเบซเบกเบปเบเบญเบฒเบเบธเบเบญเบเบเบงเบเปเบเบปเบฒเปเบเบกเบทเปเบเบฒเบเบเบฑเปเบเปเบฅเบฐเบชเบปเปเบเบเบปเบงเปเบฅเบเบเบตเปเปเบเบซเบฒ NetXMS. เบเปเบฒเบเบเบปเบงเปเบเบเบเบญเบเบฅเบฒเบง. เบเบฑเปเบเปเบกเปเบเบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฅเบตเปเบกเบเบปเปเบ.
เบเบฒเบเปเบฅเบทเบญเบเบซเบเบถเปเบ, เบเปเบฒเบโเบเบตเปโเบชเบธเบโ. เบเบฝเบเปเบเปเปเบเปเบฎเบฑเบเบเปเบฒเบเบงเบเบกเบทเปเบเบปเบเบเปเบงเบฒเบงเบฑเบเบซเบกเบปเบเบญเบฒเบเบธเบเบญเบเปเบเบขเบฑเปเบเบขเบทเบเบเบตเปเบกเบตเบงเบฑเบเบเบตเบเบตเปเปเบเปเบเบตเปเบชเบธเบ.
เปเบเบทเปเบญเปเบซเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ NetXMS เบฎเบนเปเบเปเบฝเบงเบเบฑเบเบเบฒเบเบกเบตเบขเบนเปเบเบญเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเบฒเบซเบเบปเบเปเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบกเบฑเบเบเปเบญเบเปเบเปเบฎเบฑเบเบกเบฑเบเบเบฒเบเบเบปเบงเปเบเบ. เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบเบทเบเปเบเบตเปเบกเปเบเปเปเบเบทเปเบญเบเบเบฒเบเบกเบฑเบเบเปเปเบกเบต. เบเบฑเปเบเบเบฑเปเบ, เปเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบ nxagentd.conf เบเบงเบเปเบฎเบปเบฒเปเบเบตเปเบกเบชเบฒเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบฒเบเบเบญเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ HTTPS.CertificateExpireDateSimple, เปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบฅเบปเบเบเบฐเบเบฝเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบญเบ script เปเบเป:
ExternalParameter = HTTPS.CertificateExpireDateSimple: powershell.exe -File "servershareNetXMS_CertExpireDateSimple.ps1"
เบเบดเบเบฒเบฅเบฐเบเบฒเบงเปเบฒเบชเบฐเบเบดเบเบเบทเบเปเบเบตเบเบเบปเบงเบเปเบฒเบเปเบเบทเบญเบเปเบฒเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบทเปเบเปเบฒเบเปเบฝเบงเบเบฑเบ
เบเบฑเปเบเบเบฑเปเบ, เบเบปเบงเปเบเบ config เบกเบตเบฅเบฑเบเบชเบฐเบเบฐเบเปเบฒเบเบเบทเบเบตเป:
#
# NetXMS agent configuration file
# Created by agent installer at Thu Jun 13 11:24:43 2019
#
MasterServers = netxms.corp.testcompany.ru
ConfigIncludeDir = C:NetXMSetcnxagentd.conf.d
LogFile = {syslog}
FileStore = C:NetXMSvar
SubAgent = ecs.nsm
SubAgent = filemgr.nsm
SubAgent = ping.nsm
SubAgent = logwatch.nsm
SubAgent = portcheck.nsm
SubAgent = winperf.nsm
SubAgent = wmi.nsm
ExternalParameter = HTTPS.CertificateExpireDateSimple: powershell.exe -File "servershareNetXMS_CertExpireDateSimple.ps1"
เบซเบผเบฑเบเบเบฒเบเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบเบถเบ config เปเบฅเบฐ restart เบเบปเบงเปเบเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเบฒเบ NetXMS console: เปเบเบตเบ config (เปเบเปเปเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบ), เปเบเปเปเบเบกเบฑเบ, เบเปเบฒเปเบเบตเบเบเบฒเบ Save & Apply, เบเบฑเปเบเบเบฑเปเบ, เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบชเบดเปเบเบเบฝเบงเบเบฑเบเบเบฐเปเบเบตเบเบเบถเปเบ. เบเบฒเบเบเบฑเปเบเบญเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบทเบเปเปเป (เปเบเบเบชเบณเบซเบผเบงเบ > เบเบฒเบเบเบฑเปเบเบเปเบฒ), เบเปเบฒเปเบเบปเปเบฒเบเปเปเบกเบตเปเบฎเบเบฅเปเบเปเบฒเปเบฅเบตเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเปเบฒเบเบเบงเบเบเบฐเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเบฒเบซเบเบปเบเปเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เปเบ NetXMS console เปเบ เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเปเบเบฑเบเบเบณเบเปเปเบกเบนเบ เปเบเบตเบเปเบงเบตเบเบปเบเบฅเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบเบฒเบกเปเบเบขเบฑเปเบเบขเบทเบเปเบฅเบฐเบชเปเบฒเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบซเบกเปเบขเบนเปเบเบตเปเบเบฑเปเบ (เปเบเบญเบฐเบเบฒเบเบปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒ, เบกเบฑเบเบกเบตเบเบงเบฒเบกเบซเบกเบฒเบเบเบตเปเบเบฐเปเบญเบเบกเบฑเบเปเบเบซเบฒเปเบกเปเปเบเบ). เปเบฅเบทเบญเบ HTTPS.CertificateExpireDateSimple เบเบฒเบเบฅเบฒเบเบเบฒเบ, เปเบชเปเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบตเปเบกเบตเบเบทเปเบเบตเปเบเบฑเบเปเบเบ, เบเปเบฒเบเบปเบเบเบฐเปเบเบเปเบเบฑเบ Integer เปเบฅเบฐเบเปเบฒเบเบปเบเปเบฅเบเบฐเบเบฒเบเบฅเบปเบเบเบฐเปเบเบเบชเบฝเบ. เบชเปเบฒโเบฅเบฑเบโเบเบธเบโเบเบฐโเบชเบปเบ debuggingโ, เบกเบฑเบโเปเบฎเบฑเบโเปเบซเปโเบเบงเบฒเบกโเบฎเบนเปโเบชเบถเบโเบเบตเปโเบเบฐโเปเบฎเบฑเบโเปเบซเปโเบชเบฑเปเบโ, 30 เบงเบดโเบเบฒโเบเบตโ, เบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเบปเบโเบเบปเบงโเบขเปเบฒเบโ. เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเบฝเบกเบเปเบญเบก, เบเบฝเบเบเปเบชเปเบฒเบฅเบฑเบเบเบญเบเบเบตเป.
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบงเบเบชเบญเบเปเบเป ... เบเปเป, เบกเบฑเบเปเบงเปเบเบตเบเปเบ. เบเบฝเบงเบเบตเป, เปเบเปเบเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเปเบเปเบฎเบฑเบเบซเบเบฑเบเปเบฅเบตเบ. เบเบฝเบเปเบเปเปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ script เบเบฑเบเบเปเปเบเบฑเบเปเบเปเบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบ. เปเบซเปเปเบฎเบปเบฒเปเบเปเปเบเบเบฒเบเบฅเบฐเปเบงเบฑเปเบเบเบตเป. เบชเบฐเบเบฃเบดเบเบเบฝเบเปเบเปเบเบฐเบชเบฐเปเบเบเบเบปเบงเปเบฅเบ, เบเปเบฒเบเบงเบเบกเบทเปเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบเบปเบเบเปเบงเบฒเปเบเบขเบฑเปเบเบขเบทเบเบซเบกเบปเบเบญเบฒเบเบธ. เบซเบเปเบญเบเบเบตเปเบชเบธเบเบเบญเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบกเบตเบขเบนเป. เบเบปเบงเบขเปเบฒเบ script:
try {
# ะะพะปััะฐะตะผ ะฒัะต ัะตััะธัะธะบะฐัั ะธะท ั
ัะฐะฝะธะปะธัะฐ ัะตััะธัะธะบะฐัะพะฒ
$lmCertificates = @( Get-ChildItem -Recurse -path 'Cert:LocalMachineMy' -ErrorAction Stop )
# ะัะปะธ ัะตััะธัะธะบะฐัะพะฒ ะฝะตั, ะฒะตัะฝััั "10 ะปะตั"
if ($lmCertificates.Count -eq 0) { return 3650 }
# ะะพะปััะฐะตะผ Expiration Date ะฒัะตั
ัะตััะธัะธะบะฐัะพะฒ
$expirationDates = @( $lmCertificates | ForEach-Object { return $_.NotAfter } )
# ะะพะปััะฐะตะผ ะฝะฐะธะฑะพะปะตะต ะฑะปะธะทะบะธะน Expiration Date ะธะท ะฒัะตั
$minExpirationDate = ($expirationDates | Measure-Object -Minimum -ErrorAction Stop ).Minimum
# ะะพะฝะฒะตััะธััะตะผ ะฝะฐะธะฑะพะปะตะต ะฑะปะธะทะบะธะน Expiration Date ะฒ ะบะพะปะธัะตััะฒะพ ะพััะฐะฒัะธั
ัั ะดะฝะตะน ั ะพะบััะณะปะตะฝะธะตะผ ะฒ ะผะตะฝัััั ััะพัะพะฝั
$daysLeft = [Math]::Floor( ($minExpirationDate - [DateTime]::Now).TotalDays )
# ะะพะทะฒัะฐัะฐะตะผ ะทะฝะฐัะตะฝะธะต
return $daysLeft
}
catch {
return -1
}
เบกเบฑเบโเบซเบฑเบโเบญเบญเบโเปเบเบฑเบโเบเบฑเปเบโเบเบตเปโ:
723 เบกเบทเป, เปเบเบทเบญเบเบชเบญเบเบเบตเบเบฑเบเปเบซเบผเบทเบญเบเบปเบเบเปเบงเบฒเปเบเบขเบฑเปเบเบขเบทเบเบซเบกเบปเบเบญเบฒเบเบธ. เบกเบฑเบเปเบเบฑเบเปเบซเบเบเบปเบ, เปเบเบฒเบฐเบงเปเบฒเบเปเบญเบเปเบเปเบญเบญเบเปเบเบขเบฑเปเบเบขเบทเบเบเบทเบเปเบซเบกเปเบชเปเบฒเบฅเบฑเบเบเปเบญเบเบเบปเบเบชเบญเบ Exchange เบเปเปเบเบปเบเบกเบฒเบเบตเป.
เบกเบฑเบเปเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเปเบฒเบ. เบเบฒเบเบเบต, เบเบฒเบเบเบปเบเบเบฐเบเปเปเบเบเบฑเบเบชเบดเปเบเบเบตเป, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบซเบผเบฒเบเบเบงเปเบฒเบเบตเป. เบเบงเบเปเบฎเบปเบฒเบเบฑเปเบเบเบปเบงเปเบฎเบปเบฒเปเบญเบเปเบเบฑเบเบงเบฝเบเบเบฒเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเปเบเบขเบฑเปเบเบขเบทเบเบเบฑเบเบซเบกเบปเบเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เปเบเบเบเบทเป, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบปเบเปเบเบทเปเบญเปเบเบดเปเบเบเปเบฒเบเบงเบเบกเบทเปเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบเบปเบเบเปเบงเบฒเปเบเบขเบฑเปเบเบขเบทเบเบซเบกเบปเบเบญเบฒเบเบธ.
เบเบฒเบเปเบฅเบทเบญเบเบเบตเบชเบญเบ, เบเปเบญเบเบเปเบฒเบเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ.
เบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบเปเบฅเบฐเบขเบนเปเบเบตเปเบเบฑเปเบ, เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเปเบชเบฑเปเบเบเบตเปเบกเบต ExternalParameter, เบเบงเบเปเบฎเบปเบฒเบเบฝเบเบญเบตเบเบชเบญเบเบญเบฑเบ:
ExternalList = HTTPS.CertificateNames: powershell.exe -File "serversharenetxms_CertExternalNames.ps1"
ExternalParameter = HTTPS.CertificateExpireDate(*): powershell.exe -File "serversharenetxms_CertExternalParameter.ps1" -CertificateId "$1"
ะ เบฅเบฒเบเบเบทเปเบเบฒเบเบเบญเบ เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเปเบเปเบฎเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเปเบญเบเปเบเป. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบชเบฒเบเบเบตเปเบกเบตเบเบทเปเปเบเบขเบฑเปเบเบขเบทเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบชเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบเปเบเปเบชเบฐเบเบดเบ. เบฅเบฒเบเบเบทเป - HTTPS.CertificateNames.
เบชเบฐเบเบฃเบดเบ NetXMS_CertNames.ps1:
#ะกะฟะธัะพะบ ะฒะพะทะผะพะถะฝัั
ะธะผะตะฝ ัะตััะธัะธะบะฐัะพะฒ
$nameTypeList = @(
[System.Security.Cryptography.X509Certificates.X509NameType]::SimpleName,
[System.Security.Cryptography.X509Certificates.X509NameType]::DnsName,
[System.Security.Cryptography.X509Certificates.X509NameType]::DnsFromAlternativeName,
[System.Security.Cryptography.X509Certificates.X509NameType]::UrlName,
[System.Security.Cryptography.X509Certificates.X509NameType]::EmailName,
[System.Security.Cryptography.X509Certificates.X509NameType]::UpnName
)
#ะัะตะผ ะฒัะต ัะตััะธัะธะบะฐัั, ะธะผะตััะธะต ะทะฐะบััััะน ะบะปัั
$certList = @( Get-ChildItem -Path 'Cert:LocalMachineMy' | Where-Object { $_.HasPrivateKey -eq $true } )
#ะัะพั
ะพะดะธะผ ะฟะพ ัะฟะธัะบั ัะตััะธัะธะบะฐัะพะฒ, ัะพัะผะธััะตะผ ัััะพะบั "ะะผั ัะตััะธัะธะบะฐัะฐ - ะะฐัะฐ - Thumbprint" ะธ ะฒะพะทะฒัะฐัะฐะตะผ ะตั
foreach ($cert in $certList) {
$name = '(unknown name)'
try {
$thumbprint = $cert.Thumbprint
$dateExpire = $cert.NotAfter
foreach ($nameType in $nameTypeList) {
$name_temp = $cert.GetNameInfo( $nameType, $false)
if ($name_temp -ne $null -and $name_temp -ne '') {
$name = $name_temp;
break;
}
}
Write-Output "$($name) - $($dateExpire.ToString('dd.MM.yyyy')) - [T:$($thumbprint)]"
}
catch {
Write-Error -Message "Error processing certificate list: $($_.Exception.Message)"
}
}
เปเบฅเบฐเปเบฅเปเบง ExternalParameter เบเบงเบเปเบฎเบปเบฒเปเบชเปเปเบเบงเบเบฒเบเบฅเบฒเบเบเบฒเบ ExternalList, เปเบฅเบฐเบขเบนเปเบเบตเปเบเบปเบเบเบฐเบฅเบดเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเปเบฒเบเบงเบเบกเบทเปเบเบฝเบงเบเบฑเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบปเบ. เบเบปเบงเบฅเบฐเบเบธเปเบกเปเบ Thumbprint เบเบญเบเปเบเบขเบฑเปเบเบขเบทเบ. เบเบฐเบฅเบธเบเบฒเบฎเบฑเบเบเบฒเบเบงเปเบฒ HTTPS.CertificateExpireDate เบกเบตเปเบเบทเปเบญเบเปเบฒเบเบเบฒเบง (*) เบขเบนเปเปเบเบเบปเบงเปเบเบเบตเป. เบเบตเปเปเบกเปเบเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเปเบซเปเบกเบฑเบเบเบญเบกเบฎเบฑเบเบเบปเบงเปเบเบเบฒเบเบเบญเบ, เบเบฝเบเปเบเป CertificateId เบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เบชเบฐเบเบฃเบดเบ NetXMS_CertExpireDate.ps1:
#ะะฟัะตะดะตะปัะตะผ ะฒั
ะพะดััะธะน ะฟะฐัะฐะผะตัั $CertificateId
param (
[Parameter(Mandatory=$false)]
[String]$CertificateId
)
#ะัะพะฒะตัะบะฐ ะฝะฐ ัััะตััะฒะพะฒะฐะฝะธะต
if ($CertificateId -eq $null) {
Write-Error -Message "CertificateID parameter is required!"
return
}
#ะะพ Thumbprint ะธะท ัััะพะบะธ ะฒ $CertificateId ะธัะตะผ ัะตััะธัะธะบะฐั ะธ ะพะฟัะตะดะตะปัะตะผ ะตะณะพ Expiration Date
$certId = $CertificateId;
try {
if ($certId -match '^.*[T:(?<Thumbprint>[A-Z0-9]+)]$') {
$thumbprint = $Matches['Thumbprint']
$certificatePath = "Cert:LocalMachineMy$($thumbprint)"
if (Test-Path -PathType Leaf -Path $certificatePath ) {
$certificate = Get-Item -Path $certificatePath;
$certificateExpirationDate = $certificate.NotAfter
$certificateDayToLive = [Math]::Floor( ($certificateExpirationDate - [DateTime]::Now).TotalDays )
Write-Output "$($certificateDayToLive)";
}
else {
Write-Error -Message "No certificate matching this thumbprint found on this server $($certId)"
}
}
else {
Write-Error -Message "CertificateID provided in wrong format. Must be FriendlyName [T:<thumbprint>]"
}
}
catch {
Write-Error -Message "Error while executing script: $($_.Exception.Message)"
}
เปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบซเบกเป. เปเบ Parameter เบเบงเบเปเบฎเบปเบฒเปเบฅเบทเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ HTTPS.CertificateExpireDate(*) เบเบฒเบโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโ, เปเบฅเบฐ (เปเบญเบปเบฒโเปเบโเปเบชเปโ!โ) เบเบฒเบโเบเปเบฝเบโเปเบเบโเบเบฒเบงโเปเบเบฑเบโ {เบเบปเบงเบขเปเบฒเบ}. เบเบธเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเปเบฒเบเบเบปเบงเบเบฑเบเปเบเบเบเปเบฒเบเบซเบฒเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบปเบงเบขเปเบฒเบ (เปเบเบขเบฑเปเบเบขเบทเบ). เบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเปเบกเปเบเบเบทเปเบกเปเบชเปเปเบเบชเบฐเบเบฑเบเบเบตเปเบเปเบฒเบเบกเบฒ:
เปเบเบทเปเบญเปเบซเปเบกเบตเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเบฐเบชเปเบฒเบเบเบปเบงเบเบฑเบเบเบฒเบ, เปเบเปเบเบ Instance Discovery, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบฅเบทเบญเบเบฅเบฒเบเบเบทเปเบเบปเบงเปเบเบเบเบฒเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบฅเบฐเปเบเบเบฒเบเบชเบฐเบซเบเบฒเบก List Name เปเบชเปเบเบทเปเบเบญเบ ExternalList เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฒเบเบชเบฐเบเบดเบ - HTTPS.CertificateNames .
เปเบเบทเบญเบเบเปเบญเบกเปเบฅเปเบง, เบฅเปเบเปเบฒเปเปเบญเบเปเบถเปเบ เบซเบผเบทเบเบฑเบเบเบฑเบเปเบเบเบชเบณเบซเบผเบงเบ > เบเบฒเบเบเบฑเปเบเบเปเบฒ เปเบฅเบฐเปเบเบเบชเบณเบซเบผเบงเบ > Instance Discovery เบเปเบฒเบกเบฑเบเบเปเปเบชเบฒเบกเบฒเบเบฅเปเบเปเบฒเปเบเป. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเปเบเบขเบฑเปเบเบขเบทเบเบเบฑเบเปเบปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบตเปเบกเบตเปเบฅเบเบฐเปเบงเบฅเบฒเบเบตเปเบเบทเบเบเปเบญเบ:
เปเบเบปเปเบฒโเบเปเบญเบโเบเบฒเบโเบซเบเบฑเบ? เปเบฅเปเบง, เปเบกเปเบเปเบฅเปเบง, เบเบฝเบเปเบเปเปเบกเปเบเปเบญเบเบเบญเบเบเบงเบฒเบกเบชเบปเบกเบเบนเบเปเบเบเปเบเบปเปเบฒเบเบฑเปเบเบเบตเปเปเบเบดเปเบเบฎเบนเบเปเบเปเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบเบตเปเปเบเบเบทเปเบเบญเบ counter เบเปเบงเบเบเบฒเปเบชเบเปเบชเบปเปเบฒเปเบฅเบฐเบเปเปเปเบซเปเบเปเบญเบเบเบปเบเบเบปเบเบเบงเบฒเบก. เปเบเบทเปเบญเบเปเบญเบเบกเบฑเบ, เปเบเบตเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบปเบงเบเบฑเบเบญเบตเบเบเบฑเปเบ เปเบฅเบฐเบขเบนเปเปเบเปเบเบ Instance Discovery, เปเบเบเปเบญเบ "เบชเบฐเบเบฃเบดเบเบเบปเบงเบเบฑเปเบเบเบญเบเบเบฒเบเบเบปเปเบเบเบปเบเบเบปเบงเบขเปเบฒเบ", เปเบเบตเปเบกเบญเบฑเบเบเบตเปเบเบฝเบเปเบงเปเปเบ
instance = $1;
if (instance ~= "^(.*)s-s[T:[a-zA-Z0-9]+]$")
{
return %(true, instance, $1);
}
return true;
เปเบเบดเปเบเบเบฐเบเบฑเปเบเบเบญเบ Thumbprint:
เปเบฅเบฐเปเบเบทเปเบญเบชเบฐเปเบเบเบกเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบ, เปเบเปเบเบเบเบปเปเบงเปเบเปเบเบเบฒเบเบชเบฐเบซเบเบฒเบกเบเปเบฒเบญเบฐเบเบดเบเบฒเบ, เบเปเบฝเบ CertificateExpireDate: {instance} เปเบเบฑเบ CertificateExpireDate: {instance-name}:
เบเบฑเปเบเปเบกเปเบ, เบชเบธเบเบเปเบฒเบเปเบชเบฑเปเบเบชเปเบฒเปเบฅเบฑเบเบฎเบนเบเบเบฒเบ KDPV:
เบเปเปเปเบกเปเบเบเบงเบฒเบกเบเบฒเบกเบเป?
เบชเบดเปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเปเบเปเบเปเบเบทเบญเบเปเบเบทเปเบญเปเบซเปเบเบงเบเปเบเบปเบฒเบกเบฒเบฎเบญเบเบเบฒเบเบญเบตเปเบกเบงเปเบกเบทเปเบญเปเบเบขเบฑเปเบเบขเบทเบเบซเบกเบปเบเบญเบฒเบเบธ.
1. เบเปเบญเบเบญเบทเปเบเปเบฎเบปเบฒเบเปเบญเบเบชเปเบฒเบ Event Template เปเบเบทเปเบญเปเบเบตเบเปเบเปเบเบฒเบเบกเบฑเบเปเบกเบทเปเบญเบเปเบฒ counter เบซเบผเบธเบเบฅเบปเบเปเบเบดเบเบเบฒเบเปเบเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบณเบเบปเบเปเบงเป. IN เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบซเบเบเบฒเบ เปเบซเปเบชเปเบฒเบเบชเบญเบเปเบกเปเปเบเบเปเบซเบกเปเบเบตเปเบกเบตเบเบทเปเปเบเบฑเปเบ CertificateExpireDate_Threshold_Activate เบเบฑเบโเบชเบฐโเบเบฒโเบเบฐโเบเบฒเบโเปเบเบทเบญเบโเปเบโ:
เปเบฅเบฐเบเปเบฒเบเบเบทเบเบฑเบ CertificateExpireDate_Threshold_Deactivate เบเบฑเบโเบชเบฐโเบเบฒโเบเบฐโเบเบฒเบโเบเบปเบโเบเบฐโเบเบดโ.
2. เบเปเปเปเบ, เปเบซเปเปเบเบเบตเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบปเบงเบเบฑเบ เปเบฅเบฐเบเบฑเปเบเปเบเบเบขเบนเปเปเบเปเบเบ Tresholds:
เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบฅเบทเบญเบเบเบดเบเบเบฐเบเปเบฒเบเบตเปเบชเปเบฒเบเบเบถเปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ CertificateExpireDate_Threshold_Activate เปเบฅเบฐ CertificateExpireDate_Threshold_Deactivate, เบเปเบฒเบเบปเบเบเปเบฒเบเบงเบเบเบปเบงเบขเปเบฒเบ (Samples) เปเบเบฑเบ 1 (เปเบเบเบชเบฐเปเบเบฒเบฐเบชเปเบฒเบฅเบฑเบ counter เบเบตเปเบเปเปเบกเบตเบเบธเบเปเบเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบตเปเบกเปเบเบตเบก), เบกเบนเบเบเปเบฒเปเบกเปเบ 30 (เบกเบทเป), เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เปเบฅเบฐ, เบเบตเปเบชเปเบฒเบเบฑเบ, เบเปเบฒเบเบปเบ. เปเบงเบฅเบฒเบเปเบฒเบเบเบทเบเปเบซเบเบเบฒเบ. เบชเปเบฒเบฅเบฑเบเปเบเบขเบฑเปเบเบขเบทเบเปเบเบเบฒเบเบเบฐเบฅเบดเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเบฒเบเบปเบเบกเบฑเบเบซเบเบถเปเบเบเบฑเปเบเบเปเปเบกเบทเป (86400 เบงเบดเบเบฒเบเบต), เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบปเบกเบเปเปเบฒเปเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบ (เปเบเบดเปเบ, เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เปเบเบตเบเบเบถเปเบเบเบฑเปเบเบเบฝเบง, เบซเบผเบฒเบเบเบฑเปเบเบเบฑเปเบเบเปเบญเบเบเบปเบเบซเบกเบฒเบเปเบเบฑเบกเปเบเปเบเบเปเบฒเบเบญเบฒเบเบดเบ). เบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเปเบเปโเปเบโเบเบตเปโเปเบเปโเปเบงโเบฅเบฒโ, เบกเบฑเบโเปเบฎเบฑเบโเปเบซเปโเบเบงเบฒเบกโเบฎเบนเปโเบชเบถเบโเบเบตเปโเบเบฐโเบเบฑเปเบโเบกเบฑเบโเบโเปโเปโเบฒโ, 60 เบงเบดโเบเบฒโเบเบตโ, เบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเบปเบโเบเบปเบงโเบขเปเบฒเบโ.
3. เปเบ เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบ เบชเปเบฒเบโเปเบกเปโเปเบเบโเบเบปเบโเบซเบกเบฒเบโเบชเบฐโเบเบฑเบโเปเบเปเบโเบเบฒเบโ, เปเบเบฑเปเบโเบเบตเปโ:
เบเบฑเบเปเบปเบเปเบซเบผเบปเปเบฒเบเบตเป %m, %S, เปเบฅเบฐเบญเบทเปเบเป. โ เบกเบฐเบซเบฒเบเบฒเบเบเบตเปเบเปเบฒเบเบฒเบเบเบฒเบฃเบฒเบกเบดเปเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบทเบเบเปเบฝเบเปเบเบ. เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเปเบเบทเบเบญเบฐเบเบดเบเบฒเบเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเปเบ
4. เปเบฅเบฐเบชเบธเบเบเปเบฒเบ, เบชเบปเบกเบเบปเบเบเบธเบเบเบตเปเบเปเบฒเบเบกเบฒ, เปเบเบปเปเบฒเปเบเปเบ เบเบฐเปเบเบเบฒเบเบเบฒเบเบเบฐเบกเบงเบเบเบปเบเปเบซเบเบเบฒเบ เบชเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบกเบเบฒเบเบเบธเบเบเบฐเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบฅเบฐเบเบปเบเบซเบกเบฒเบเบเบฐเบเบทเบเบชเบปเปเบ:
เบเบงเบเปเบฎเบปเบฒเบเบฐเบซเบเบฑเบเบเบฐเปเบเบเบฒเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบชเบฒเบกเบฒเบเบเบปเบเบชเบญเบเปเบเป. เบเปเปเบซเปเบเบฑเปเบเปเบเบเปเบซเปเบชเบนเบเบเบถเปเบเปเบเบทเปเบญเบเบงเบเบชเบญเบ. เปเบเบฎเบฑเบเบฎเบญเบเบเบตเปเปเบเปเบเบตเปเบชเบธเบเบเบญเบเบเปเบญเบเปเบปเบเบญเบฒเบเบธเปเบ 723 เบกเบทเป, เบเปเบญเบเบเบฑเปเบเบกเบฑเบเปเบเบฑเบ 724 เปเบเบทเปเบญเบเบงเบเบชเบญเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบชเบฑเบเบเบฒเบเปเบเบทเบญเบเบเปเปเปเบเบเบตเป:
เปเบฅเบฐเบเบฒเบเปเบเปเบเปเบเบทเบญเบเบญเบตเปเบกเบงเบเบตเป:
เบเบฑเปเบเปเบกเปเบเบเบฑเบเบซเบกเบปเบเปเบเปเบเบญเบเปเบเบเบฑเบเบเบธเบเบฑเบ. เบกเบฑเบเปเบเบฑเบเปเบเปเบเป, เปเบเปเบเบญเบ, เบเบฒเบเบเบฑเปเบเบเปเบฒ dashboard เปเบฅเบฐเบชเปเบฒเบเบเบฒเบ, เปเบเปเบชเปเบฒเบฅเบฑเบเปเบเบขเบฑเปเบเบขเบทเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบเปเปเบกเบตเบเบงเบฒเบกเบซเบกเบฒเบเปเบฅเบฐเบซเบเปเบฒเปเบเบทเปเบญ, เบเปเปเปเบซเบกเบทเบญเบเบเบฑเบเบเบฒเบเบเบญเบเปเบเปเบเบเปเบเบตเบซเบผเบทเบเบฒเบเปเบซเบผเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ. เปเบเป, เปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเปเบฅเบทเปเบญเบเบเบตเปเบเบฒเบเบเบฑเปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com