Powershell zum Abfragen von Computern in der Domäne und Abrufen des Zertifikatswerts

Powershell zum Abfragen von Computern in der Domäne und Abrufen des Zertifikatswerts

Wir möchten eine Liste aller Computer in der Umgebung erstellen und sehen, welche Zertifikate auf den Computern vorhanden sind. Wir müssen wissen, ob es sich um SHA1- oder SHA2-Hashes handelt.

Ich habe online nachgeschaut und kann nicht herausfinden, ob das überhaupt möglich ist.

Hilfe bitte

Antwort1

Sie können den Algorithmus wie folgt überprüfen:

$Cert = Get-ChildItem Cert:\LocalMachine\My\ | Select -First 1
if($Cert.SignatureAlgorithm.FriendlyName -like "sha2*"){
    Write-Host "SHA2 sig, all good"
}

Um alle Computer in der Domäne abzurufen, können Sie einfach Folgendes verwenden Get-ADComputer:

$Computers = Get-ADComputer -Filter {Enabled -eq $True}
foreach($Computer in $Computers){
    # Run your check against each $Computer in here
}

Sie können dann entweder PSRemoting verwenden und die Prüfung auf dem Remotecomputer ausführen:

$pss = New-PSSession -ComputerName remotemachine.domain.tld
Invoke-Command -Session $pss -ScriptBlock {
    # code to check certs go here
}

Oder Sie können von Ihrem eigenen Computer aus direkt eine Verbindung zum Remote-Zertifikatspeicher herstellen:

$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()

verwandte Informationen