PowerShell IWR не удается при попытке -SkipCertificateCheck - PullRequest
2 голосов
/ 27 января 2020

Используя (версия 5.1.18362.145) и пытаясь использовать Invoke-WebRequest, происходит сбой при использовании -SkipCertificateCheck.

Я не знаю что делать с этим, как это, кажется, задокументировано на msdn . Я попытался запустить Update-Module на тот случай, если модуль был старой версией, но это не помогло устранить проблему.

Команда:

iwr -SkipCertificateCheck google.com -UseBasicParsing -Method Head

Ошибка:

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`

Кто-нибудь знает, как заставить Invoke-WebRequest работать без проверки сертификатов?

Общая цель этого - использовать Invoke-WebRequest с сайтом, который имеет самозаверяющий сертификат.

1 Ответ

1 голос
/ 27 января 2020

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/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...