当前位置:  开发笔记 > 后端 > 正文

使用powershell downloadstring忽略SSL警告

如何解决《使用powershelldownloadstring忽略SSL警告》经验,为你挑选了1个好方法。

我有这个漂亮的单行班轮,通过任务调度程序调用我的网络服务:

-ExecutionPolicy unrestricted -Command "(New-Object Net.WebClient).DownloadString(\"https://127.0.0.1/xxx\")"

但我的web服务现在有SSL,我想进行本地调用,因此它提供了SSL异常.那么有没有办法忽略这个衬管的SSL警告?



1> Harald F...:

使用单行程序时,忽略SSL警告(使用WebClient downloadstring方法)没有太多选项.

您可以在调用命令之前尝试执行此操作:

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

由于您在任务调度程序中使用它,我会在DownloadString命令之前添加一个';' 分开这两个命令.

这应该做的伎俩,这将在会话中设置回调:

 -ExecutionPolicy unrestricted -Command "[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};(New-Object Net.WebClient).DownloadString(\"127.0.0.1/xxx\")" 

如果您安装了较新的Powershell(检查是否有可用的invoke-webrequest cmdlet),则可以将此cmdlet添加到安全策略中.仍然不是一个单行,但这应该做的伎俩:

add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
    public bool CheckValidationResult(
        ServicePoint srvPoint, X509Certificate certificate,
        WebRequest request, int certificateProblem) {
        return true;
    }
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

$result = Invoke-WebRequest -Uri ""https://127.0.0.1/xxx"

尝试查看它是否适用于普通主机,如果是,您可以将其捆绑在一个简单的脚本中,并在计划任务中使用它.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有