Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 在本地存储中搜索通配符证书?_Powershell_Ssl Certificate - Fatal编程技术网

Powershell 在本地存储中搜索通配符证书?

Powershell 在本地存储中搜索通配符证书?,powershell,ssl-certificate,Powershell,Ssl Certificate,我有一个例行程序,搜索我的证书存储的证书匹配的主题名称。。。e、 例如,我有一个主题为foobar.blah.com的证书,我的脚本是这样做的: (Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match "foobar.blah.com"}) 这就像预期的一样。。。i、 e.查找条目 然而,我试图对官方通配符证书(例如,*.blah.com)执行相同的过程,但是尝试使用相同的语法是失败的 我曾尝试使

我有一个例行程序,搜索我的证书存储的证书匹配的主题名称。。。e、 例如,我有一个主题为foobar.blah.com的证书,我的脚本是这样做的:

(Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match "foobar.blah.com"})
这就像预期的一样。。。i、 e.查找条目

然而,我试图对官方通配符证书(例如,*.blah.com)执行相同的过程,但是尝试使用相同的语法是失败的

我曾尝试使用其他表单搜索选项(-比如,-contains等),但似乎没有任何效果。
有什么建议吗

-match
需要一个正则表达式模式作为其右参数。在正则表达式中,
*
是一个量词,表示“0或更多”。要匹配文字字符
*
,请使用
\
对其进行转义:

{ $_.Subject -match '\*\.blah\.com'}
也是一个特殊字符(匹配任何单个字符)

如果您对要转义的字符有疑问,请使用
[regex]::escape()
方法:

$Pattern = [regex]::Escape('*.blah.com')
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match $Pattern}

-match
需要一个正则表达式模式作为其右参数。在正则表达式中,
*
是一个量词,表示“0或更多”。要匹配文字字符
*
,请使用
\
对其进行转义:

{ $_.Subject -match '\*\.blah\.com'}
也是一个特殊字符(匹配任何单个字符)

如果您对要转义的字符有疑问,请使用
[regex]::escape()
方法:

$Pattern = [regex]::Escape('*.blah.com')
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match $Pattern}

-match
需要一个正则表达式模式作为其右参数。在正则表达式中,
*
是一个量词,表示“0或更多”。要匹配文字字符
*
,请使用
\
对其进行转义:

{ $_.Subject -match '\*\.blah\.com'}
也是一个特殊字符(匹配任何单个字符)

如果您对要转义的字符有疑问,请使用
[regex]::escape()
方法:

$Pattern = [regex]::Escape('*.blah.com')
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match $Pattern}

-match
需要一个正则表达式模式作为其右参数。在正则表达式中,
*
是一个量词,表示“0或更多”。要匹配文字字符
*
,请使用
\
对其进行转义:

{ $_.Subject -match '\*\.blah\.com'}
也是一个特殊字符(匹配任何单个字符)

如果您对要转义的字符有疑问,请使用
[regex]::escape()
方法:

$Pattern = [regex]::Escape('*.blah.com')
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match $Pattern}