我一直在尝试在PowerShell上运行以下命令:
netsh http add sslcert ipport=0.0.0.0:443 certhash=<some certhash> appid={<random guid>}
问题是,它每次都会返回
"The parameter is incorrect"
。我已经检查了证书的哈希号和生成的guid,它们都还好。实际上,我在cmd.exe
中运行了相同的命令,它运行良好,这增加了挫败感。我想将变量作为
certhash
和appid
传递,这就是为什么我使用PowerShell的原因。如果有人可以帮助我了解为什么它无法正常运行,或者缺少在PowerShell上运行所需的功能。
最佳答案
我终于了解了问题所在:尽管在PowerShell中可以本地执行cmd
命令,但是命令的解析略有变化,在这种情况下,它破坏了appid
参数(大括号!)的解释。
为了解决这个问题,我只将方括号({}
)和<random guid>
括在单引号中,这样,
netsh http add sslcert ipport=0.0.0.0:443 certhash=<certhash> appid='{<random guid>}'
与(请注意缺少“引号”)相反,
netsh http add sslcert ipport=0.0.0.0:443 certhash=<certhash> appid={<random guid>}
该命令运行良好。
有关PowerShell解析的更多信息,Understanding PowerShell Parsing Modes。