Powershell不允许更改ServerCertificateValidationCallback

时间:2015-09-25 03:02:52

标签: powershell

我尝试使用Invoke-RestMethod进行调用,但我正在连接的服务器有自签名证书。

经过一番搜索,我发现我需要运行以下命令才能使其正常工作:

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = ${true}

我几天前做过这个,然后我的Invoke-RestMethod调用开始工作。

然后我重新启动了我的服务器并尝试再次执行相同的操作,但现在我收到以下错误:

  

PS C:\ Users \ Administrator> [System.Net.ServicePointManager] :: ServerCertificateValidationCallback = $ True   异常设置“ServerCertificateValidationCallback”:“无法将值”True“转换为类型   “System.Net.Security.RemoteCertificateValidationCallback”。错误:“来自'System.Boolean'的无效转换为   'System.Net.Security.RemoteCertificateValidationCallback'。 “”   在行:1个字符:1   + [System.Net.ServicePointManager] :: ServerCertificateValidationCallback = $ True   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:NotSpecified:(:) [],SetValueInvocationException       + FullyQualifiedErrorId:ExceptionWhenSetting   块引用

我尝试将执行策略设置为不受限制但我仍然遇到同样的问题。

我在使用PSVersion 3.0的Windows Server 2012上运行。

我不知道为什么之前有效。我很确定我之前没有做过什么特别的事。

我会很感激任何建议!

1 个答案:

答案 0 :(得分:0)

我终于找到了一个具有以下命令的网站:

[Net.ServicePointManager]::ServerCertificateValidationCallback = ${true}

请注意'系统'。不见了。

运行此命令按预期工作。