우리는 환경에 있는 모든 컴퓨터의 목록을 얻고 컴퓨터에 어떤 인증서가 있는지 확인하고 있습니다. sha1 해시인지 sha2 해시인지 알아야 합니다.
온라인에서 찾아봤는데 이것이 가능한지 알 수 없나요?
도와주세요
답변1
다음과 같이 알고리즘을 검사할 수 있습니다.
$Cert = Get-ChildItem Cert:\LocalMachine\My\ | Select -First 1
if($Cert.SignatureAlgorithm.FriendlyName -like "sha2*"){
Write-Host "SHA2 sig, all good"
}
도메인의 모든 컴퓨터를 얻으려면 다음을 사용하면 됩니다 Get-ADComputer
.
$Computers = Get-ADComputer -Filter {Enabled -eq $True}
foreach($Computer in $Computers){
# Run your check against each $Computer in here
}
그런 다음 PSRemoting을 사용하고 원격 컴퓨터에서 검사를 실행할 수 있습니다.
$pss = New-PSSession -ComputerName remotemachine.domain.tld
Invoke-Command -Session $pss -ScriptBlock {
# code to check certs go here
}
또는 자신의 컴퓨터에서 원격 인증서 저장소에 직접 연결할 수 있습니다.
$CertStore = New-Object System.Security.Cryptography.X509Certificates.X509Store "\\$ComputerName\My","LocalMachine"
$CertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
foreach($Cert in $CertStore.Certificates){
# once again, inspect $Cert.SignatureAlgorithm
}
$CertStore.Close()