Почему Select-String не фильтрует ввод метода ToString ()? - PullRequest
0 голосов
/ 11 апреля 2019

Почему PowerShell не фильтрует выходные данные метода toString объекта?

Get-ChildItem cert:\localmachine\my | % { Select-String -InputObject $_.ToString() -Pattern 'testcert' -SimpleMatch }

Вместо этого я просто получаю все, что обычно получаю, запустив

Get-ChildItem cert:\localmachine\my | % { $_.ToString() }

Я ожидал, что как grep или findstring я получутолько строки, которые соответствуют регулярному выражению.

Можно было бы подумать, что после вызова $_.ToString() вы просто получите строковый вывод ... вместо этого я просто получаю объекты или массив строк?

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

Select-String работает с отдельными строками ... и вы даете только это - отдельные многострочные строки.[ grin ]

, если вы хотите сопоставить определенную строку в свойствах сертификата, используйте Where-Object {$_.PropName -match 'TestValue'}, чтобы получить объект, который содержит тестовое значение в названной пропе.

0 голосов
/ 11 апреля 2019

Lee_Daily уже предоставил вам ответ, но вы также сделали следующее ...

(Get-ChildItem cert:\localmachine\my) -match 'testcert'

Пример на одной из моих тестовых машин

Get-ChildItem cert:\localmachine\my


PSParentPath: Microsoft.PowerShell.Security\Certificate::localmachine\my

Thumbprint    Subject 
----------    ------- 
FEB8E79E06... CN=NVIDIA GameStream Server         
D2D983C386... CN=Windows Admin Center             
96A0413F93... CN=Windows Admin Center             
5299896B41... CN=localhost                        



(Get-ChildItem cert:\localmachine\my) -match 'admin'


PSParentPath: Microsoft.PowerShell.Security\Certificate::localmachine\my

Thumbprint    Subject 
----------    ------- 
D2D983C386... CN=Windows Admin Center             
96A0413F93... CN=Windows Admin Center             



(Get-ChildItem cert:\localmachine\my) -match 'localhost'


PSParentPath: Microsoft.PowerShell.Security\Certificate::localmachine\my

Thumbprint    Subject 
----------    ------- 
5299896B41... CN=localhost
...