1

所以我试图确定是否已经安装了证书,然后如果没有执行一些操作。这就是我正在以编程方式做的事情(我跳过了大部分 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 值。我究竟做错了什么?

4

1 回答 1

2

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

if (!(dir cert:\LocalMachine\My | ? {$_.subject -like "cn=$product$swimlane*"})) {
    ...
}
于 2013-05-01T22:44:26.510 回答