Я пытаюсь перечислить массив сертификатов в файл журнала:
$allCerts = Get-ChildItem Cert:\LocalMachine\My\ | Select-Object name,subject,Thumbprint,Issuer,NotAfter
Затем отправка в журнал с помощью функции регистрации:
$allCerts | ForEach-Object {logger -logstr $_}
Это показывает следующее в журнале (конфиденциальная информация удалена) - обратите внимание, что журнал не упакован, это одна строка для каждого сертификата:
[2020-0326-1003:11:10] : @{name=; Subject=CN=WinRM HTTPS mycomputer; Thumbprint=12345679679484747463etygvetevtreye; Issuer=CN=WinRM HTTPS computer; NotAfter=03/26/2023 09:38:09}
[2020-0326-1003:11:11] : @{name=; Subject=CN=mycompcert2.abc.de.fg; Thumbprint=fdhshs44he4hhh4the44h4h4; Issuer=CN=Enterprise CA, OU=Cert Svcs, O=A Corporation, L=location, S=state, C=AU; NotAfter=09/20/2050 10:30:00}
Единственный способ, который я нашел до сих пор, это:
$allCerts | ForEach-Object {logger -logstr ($_ | Out-String)}
Что дает:
[2020-0326-0952:11:56] :
name :
Subject : CN=WinRM HTTPS mycomputer
Thumbprint : 12345679679484747463etygvetevtreye
Issuer : CN=WinRM HTTPS computer
NotAfter : 03/26/2023 09:38:09
[2020-0326-0952:11:57] :
name :
Subject : CN=mycompcert2.abc.de.fg
Thumbprint : fdhshs44he4hhh4the44h4h4
CN=Enterprise CA, OU=Cert Svcs, O=A Corporation, L=location, S=state, C=AU
NotAfter : 09/20/2050 10:30:00
Есть ли более аккуратный способ, которым я могу перечислить свойства каждого члена массива в одну строку в журнале, не используя | out-string
?