Neu bei Powershell und mein Foreach schlägt immer fehl. Ich versuche, über eine Liste von Zertifikatsdateien zu iterieren, aber es schlägt fehl. Wahrscheinlich einfach

Neu bei Powershell und mein Foreach schlägt immer fehl. Ich versuche, über eine Liste von Zertifikatsdateien zu iterieren, aber es schlägt fehl. Wahrscheinlich einfach

Problem:

Wenn ich ein Zertifikat einzeln importiere, außerhalb eines Foreach, wird der Fingerabdruck nach Bedarf gedruckt. Ich muss jedoch eine Liste von CER-Dateien in einer Dateifreigabe durchlaufen, damit ich sie mit den aktuell installierten Zertifikaten eines lokalen Computers ausführen kann. Sobald ich versuche, die Liste der Zertifikate über mein Foreach auszuführen, schlägt dies fehl.

Funktionierender Code (einzeln)

<# Notice the explicite .cer file #>
$certGet = Get-ChildItem -Path \\fileserver\...\Certs\cert.cer

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($certGet)
$cert.Thumbprint

Ich versuche, diesen funktionierenden Code in ein Foreach zu skalieren, um über eine Liste oder .cer-Dateien zu iterieren. Unten ist mein bisheriger Versuch.

Fehlercode:

$certGetList = Get-ChildItem -Path \\fileserver\...\Certs

$certGetList | ForEach-Object {
    $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
    $cert.Import($_)
    $cert.Thumbprint
}

Fehlermeldung

ERROR: Exception calling "Import" with "1" argument(s): "The system cannot find the file specified.
ERROR: "
list_thumbprints_test.ps1 (18, 2): ERROR: At Line: 18 char: 2
ERROR: +     $cert.Import($_)
ERROR: +     ~~~~~~~~~~~~~~~~
ERROR:     + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
ERROR:     + FullyQualifiedErrorId : CryptographicException
ERROR:

Antwort1

Natürlich... so einfach.

Antwort:

$cert.Import($certGetList + "\" + $_)

Irgendwie verliert es den Ursprung des Objekts und versucht, die relative Datei lokal zu finden, anstatt auf der Netzwerkfreigabe. Ich musste es für jede Iteration explizit auf die Netzwerkfreigabe umleiten.

verwandte Informationen