Проблема:
Когда я импортирую сертификат индивидуально, вне foreach, он печатает отпечаток большого пальца по мере необходимости; однако мне нужно перебрать список файлов .cer на файловом ресурсе, чтобы я мог запускать их с установленными в настоящее время сертификатами локального компьютера. В тот момент, когда я пытаюсь запустить список сертификатов через мой foreach, он терпит неудачу.
Рабочий код (индивидуально)
<# 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
Я пытаюсь масштабировать этот рабочий код в foreach для перебора списка или файлов .cer. Ниже моя попытка до сих пор.
Неверный код:
$certGetList = Get-ChildItem -Path \\fileserver\...\Certs
$certGetList | ForEach-Object {
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($_)
$cert.Thumbprint
}
Сообщение об ошибке
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: