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 に答える