도메인의 컴퓨터를 쿼리하고 인증서 값을 가져오는 Powershell

도메인의 컴퓨터를 쿼리하고 인증서 값을 가져오는 Powershell

우리는 환경에 있는 모든 컴퓨터의 목록을 얻고 컴퓨터에 어떤 인증서가 있는지 확인하고 있습니다. 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()

관련 정보