我一直在尝试在PowerShell上运行以下命令:

    netsh http add sslcert ipport=0.0.0.0:443 certhash=<some certhash> appid={<random guid>}

问题是,它每次都会返回"The parameter is incorrect"。我已经检查了证书的哈希号和生成的guid,它们都还好。实际上,我在cmd.exe中运行了相同的命令,它运行良好,这增加了挫败感。

我想将变量作为certhashappid传递,这就是为什么我使用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

10-02 08:54