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
Powershell 检查cert:PS驱动器中安装的证书的CN并执行if/else_Powershell_Certificate - Fatal编程技术网

Powershell 检查cert:PS驱动器中安装的证书的CN并执行if/else

Powershell 检查cert:PS驱动器中安装的证书的CN并执行if/else,powershell,certificate,Powershell,Certificate,因此,我试图确定是否已经安装了证书,如果没有,则执行一些操作。这就是我在编程上所做的(我跳过了大部分IF部分,因为它太大了)(是的,我知道我的格式很糟糕——我还在学习)。让我们假设$product变量=财务,$swimlane变量=QA1。。。。(这些都是在我的脚本中设置的)。在此模式下,有效的CN应该是FinanceQA1.mycompany.mydomain.com If ([bool](dir cert:\LocalMachine\My\ | ? { $_.subject -like "c

因此,我试图确定是否已经安装了证书,如果没有,则执行一些操作。这就是我在编程上所做的(我跳过了大部分IF部分,因为它太大了)(是的,我知道我的格式很糟糕——我还在学习)。让我们假设$product变量=财务,$swimlane变量=QA1。。。。(这些都是在我的脚本中设置的)。在此模式下,有效的CN应该是FinanceQA1.mycompany.mydomain.com

If ([bool](dir cert:\LocalMachine\My\ | ? { $_.subject -like "cn=$product$swimlane*" }) -eq "FALSE") 
{Write-Host "Certificate not installed..., preparing request..."}
Else {Write-Host "$product Certificate Already Installed,  Skiping..."}
即使cert:\LocalMachine\My\PS存储区完全为空(全新服务器),它仍会带着ELSE值返回。我做错了什么?

不要与
“False”
相比。Oisin今天不是刚刚回答了这个问题吗?奇怪的我猜下雨的时候会下倾盆大雨。:-)与
$false
进行比较。或者更简单地尝试一下:

if (!(dir cert:\LocalMachine\My | ? {$_.subject -like "cn=$product$swimlane*"})) {
    ...
}