Get-ChildItem管道Powershell中的对象失败了吗?

时间:2016-02-08 21:32:11

标签: powershell

我试图从我的本地证书商店检索证书。我开始做这样的事情:

PS Cert:\CurrentUser\My> $cert = Get-ChildItem -Path Cert:\CurrentUser\My

PS Cert:\CurrentUser\My> $cert | Where-Object {$_.Thumbprint -Match "84437"}


Directory: Microsoft.PowerShell.Security\Certificate::CurrentUser\My


Thumbprint                                Subject                                                                                                                                                                                    
----------                                -------                                                                                                                                                                                    
8443700000000000000000000000000000000000  CN=some certificate

好。这有效。所以我把它改成了:

Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object {$_.Thumbprint -Match "‎84437"}

然而这次我根本没有输出。这是什么原因?

1 个答案:

答案 0 :(得分:5)

“84437”中的第一个双引号:

Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object {$_.Thumbprint -Match "‎84437"}

似乎包含2个字符,尝试删除它,你会发现实际上需要两次。

如果我们使用以下方法检查该字符:

"`"‎".ToCharArray()|%{[int][char]$_}

输出非常奇怪:

34
8206

34是双引号,8206是奇怪的东西。

所以只需删除双引号并再次输入,它应该可以工作。