28

我在执行 Invoke-WebRequest cmdlet 时遇到问题。我读到该场景的〜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 版本的操作系统。事实上,我的主要目的是执行简单的 Web 请求,但我很感兴趣为什么这个 cmdlet 不起作用,特别是如果它们中的更多不起作用;/ 我想它可能是一些 Windows 功能,比如打开开关,但它只是我的猜测。

更新

就我比较某些模块的可用 cmdlet 以及我的常规系统和 IoT 版本之间的预加载程序集而言,看起来后一个版本以某种方式被删减了,但我仍然没有看到任何文档。

4

6 回答 6

13

我在 Windows Server 2008 R2 服务器上遇到了这个问题,因为它运行的是 PowerShell v2。升级到 v4 解决了这个问题。

Windows 管理框架 4.0(包括 PowerShell 4.0)

从 v5 开始,Invoke-WebRequest仍然记录在案

检查您的版本:

$PSVersionTable.PSVersion
于 2016-04-15T13:16:46.480 回答
7

尝试以与 PS 版本 2 相同的方式创建请求(使用 .net 库而不是 cmdlet)也不起作用...

$request = [System.Net.WebRequest]::Create("https://google.com")
$request.Method = "GET"
[System.Net.WebResponse]$response = $request.GetResponse()
于 2015-09-08T20:49:00.240 回答
3

这似乎已在 PowerShell Core 中删除。

我正在寻找为什么这在适用于 Windows 2016 的 Nano Server 上运行的适用于 Windows 的 Docker 上不起作用,并且您的发现与我的相符。

于 2016-09-10T20:41:24.320 回答
0

Invoke-WebRequest 已从 PowerShell 5 中删除。

这是一个名为 Invoke-FastWebRequest 的函数的实现,其工作方式与 PowerShell 5 中的旧 Invoke-WebRequest 类似:https ://github.com/cloudbase/unattended-setup-scripts/blob/master/FastWebRequest.psm1

于 2015-11-23T07:11:18.467 回答
0

尽管 PowerShell 版本和其他一切都很好,但我无法从所需的 repo 下载代码。所以,我首先执行了以下命令来满足 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
于 2020-03-07T15:39:29.760 回答
-1

在命令中使用 -UseBasicParsing 选项有效。以下是命令文档的一部分

-UseBasicParsing

指示 cmdlet 使用 HTML 内容的响应对象,而不进行文档对象模型 (DOM) 分析。

当计算机上未安装 Internet Explorer 时,此参数是必需的,例如在 Windows Server 操作系统的 Server Core 安装上。

于 2017-06-06T07:03:02.600 回答