所以我正在尝试确定是否已安装证书,然后如果不执行某些操作。这就是我正在以编程方式进行的操作(我正在跳过大部分的IF部分,因为它很大)(是的,我知道我的格式很糟糕 - 我还在学习它)。我们假设$ product变量= Finance和$ 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值。我做错了什么?
答案 0 :(得分:2)
不要与"False"
比较。 Oisin今天没有回答这个问题吗?奇怪的。我想下雨的时候倒了。 :-)比较$false
。或者更简单地试试这个:
if (!(dir cert:\LocalMachine\My | ? {$_.subject -like "cn=$product$swimlane*"})) {
...
}