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