Powershell iwr 尝试 -SkipCertificateCheck 时失败

Den*_*89y 12 powershell

使用(版本 5.1.18362.145)并尝试使用Invoke-WebRequest它在使用-SkipCertificateCheck.

我不知道该怎么办,因为它似乎记录在msdn上。我尝试运行Update-Module以防模块是旧版本,但这并没有解决问题。

命令:

iwr -SkipCertificateCheck google.com -UseBasicParsing -Method Head
Run Code Online (Sandbox Code Playgroud)

错误:

Invoke-WebRequest : A parameter cannot be found that matches parameter name 'SkipCertificateCheck'

At line:1 char:5
+ iwr -SkipCertificateCheck google.com -Method Head
+     ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand`
Run Code Online (Sandbox Code Playgroud)

有谁知道如何在Invoke-WebRequest不检查证件的情况下上班吗?

其总体目标是Invoke-WebRequest与具有自签名证书的站点一起使用。

小智 15

SkipCertificateCheck在5.1上不可用,您很可能正在查看错误版本的 PowerShell。这是用于不受信任证书的常见解决方法。

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
Invoke-WebRequest https://expired.badssl.com/
Run Code Online (Sandbox Code Playgroud)