Термин "Invoke-WebRequest" не распознается как имя командлета.
У меня проблема с выполнением командлета Invoke-WebRequest. Я читал, что ~100% этого сценария - версия PS ниже 3, но это не мой случай:
Name Value
---- -----
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
CLRVersion 4.0.30319.34011
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10208.0
PSVersion 5.0.10208.0
SerializationVersion 1.1.0.1
Могу добавить, что я использую Windows 10 IoT Core версию ОС. На самом деле моей основной целью является выполнение простого веб-запроса, но меня интересует, почему этот командлет не работает, особенно если их больше не будет;/ Я полагаю, это может быть функция некоторых окон, например, переключатель включения, но его только мое предположение.
Обновить
Поскольку я сравнил доступные командлеты для определенных модулей и предварительно загруженные сборки между моей обычной системой и версией IoT, похоже, что последняя версия каким-то образом урезана, но я все еще не видел никаких документов для этого.
5 ответов
У меня была эта проблема на сервере Windows 2008 R2, потому что он работал под управлением PowerShell v2. Обновление до v4 решило проблему.
https://www.microsoft.com/en-gb/download/details.aspx?id=40855
Начиная с v5, Invoke-WebRequest
все еще задокументировано.
Проверьте свою версию с:
$PSVersionTable.PSVersion
Попытка создать запрос таким же образом, я бы сделал это для PS версии 2 (с использованием библиотеки.net вместо командлета) тоже не работает...
$request = [System.Net.WebRequest]::Create("https://google.com")
$request.Method = "GET"
[System.Net.WebResponse]$response = $request.GetResponse()
Кажется, это удалено в ядре PowerShell. Я ищу, почему это не работает в Docker для Windows, работающем на Nano Server для Windows 2016, и ваши результаты совпадают с моими.
Хотя версия PowerShell и все остальное были мне хороши, я не смог загрузить код из желаемого репо. Итак, я сначала выполнил следующую команду, чтобы удовлетворить версию TLS, а затем выполнил желаемую команду для загрузки последней версии бегуна githubActions.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest -Uri
https://github.com/actions/runner/releases/download/v2.165.2/actions-runner
-win-x64-2.165.2.zip -OutFile actions-runner-win-x64-2.165.2.zip
Invoke-WebRequest был удален из PS5. Вот реализация функции Invoke-FastWebRequest, которая работает так же, как старый Invoke-WebRequest в PS5: https://github.com/cloudbase/unattended-setup-scripts/blob/master/FastWebRequest.psm1
Использование опции -UseBasicParsing в команде работает. Следующее является частью документации команды
-UseBasicParsing
Указывает, что командлет использует объект ответа для содержимого HTML без анализа объектной модели документа (DOM).
Этот параметр обязателен, если Internet Explorer не установлен на компьютерах, например, при установке Server Core операционной системы Windows Server.