Powershell para consultar computadores no domínio e obter o valor do certificado

Powershell para consultar computadores no domínio e obter o valor do certificado

estamos procurando obter uma lista de todos os computadores no ambiente e ver quais certificados estão nos computadores. Precisaremos saber se eles são hash sha1 ou sha2.

Procurei on-line e não consigo ver se isso é possível.

Ajuda por favor

Responder1

Você pode inspecionar o algoritmo assim:

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

Para obter todos os computadores do domínio, basta usar Get-ADComputer:

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

Você pode então usar o PSRemoting e executar a verificação no computador remoto:

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

Ou você pode conectar-se diretamente ao armazenamento remoto de certificados em sua própria máquina:

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

informação relacionada