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