Using netsh on PowerShell fails with error: The parameter is incorrect

rae1 picture rae1 · Mar 15, 2012 · Viewed 8.8k times · Source

I've been trying to run the following command on PowerShell:

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

The problem is, it returns "The parameter is incorrect" every time. I've check the cert hash number, and the generated guid and they all alright. In fact, I ran the same command in cmd.exe and it worked perfectly, which adds to the frustration.

I want to pass variables as the certhash and appid, which is why I'm using PowerShell.

If anyone can help me understand why it isn't working or if there is something missing for it to work on PowerShell.

Answer

rae1 picture rae1 · Mar 16, 2012

I finally learned what the problem was: although in PowerShell you can execute cmd commands natively, the parsing of the command slightly changes, and in this case it disrupted the interpretation of the appid parameter (those curly brackets!).

To solve it, I just enclosed the brackets ({}) and <random guid> in single quotes, as such,

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

as opposed to (notice the missing 'quotes'),

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

and the command worked perfectly.

For more info on PowerShell parsing, Understanding PowerShell Parsing Modes.