Powershell 术语';调用WebRequest';未重新编码为cmdlet的名称

Powershell 术语';调用WebRequest';未重新编码为cmdlet的名称,powershell,windows-10-iot-core,powershell-5.0,Powershell,Windows 10 Iot Core,Powershell 5.0,我在执行Invoke-WebRequest cmdlet时遇到问题。我了解到,该场景中约100%的情况是PS版本低于3,但这不是我的情况: Name Value ---- ----- WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 CLRVersion 4.0.3

我在执行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核心版操作系统。事实上,我的主要目的是执行简单的web请求,但我感兴趣的是为什么此cmdlet不起作用,特别是如果其中更多的cmdlet不起作用;/我想它可能是一些windows功能,如开关打开,但这只是我的猜测

更新


就我比较了某些模块的可用cmdlet,以及常规系统和IoT版本之间的预加载程序集而言,后者的版本似乎有所削减,但我仍然没有看到任何相关文档。

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

$request = [System.Net.WebRequest]::Create("https://google.com")
$request.Method = "GET"
[System.Net.WebResponse]$response = $request.GetResponse()

调用WebRequest已从PowerShell 5中剥离


下面是一个名为Invoke FastWebRequest的函数的实现,其工作原理与PowerShell 5中的旧Invoke WebRequest类似:

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

(包括PowerShell 4.0)

从v5开始,
Invoke WebRequest

请使用以下选项检查您的版本:

$PSVersionTable.PSVersion

这似乎已在PowerShell Core中删除


我正在搜索为什么在Nano Server for Windows 2016上运行的Docker for Windows不起作用,并且您的发现与我的相匹配。

使用命令中的-UseBasicParsing选项可以工作。以下是命令文档的一部分

-UseBasicParsing

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

如果计算机上未安装Internet Explorer,例如Windows Server操作系统的服务器核心安装,则需要此参数


虽然PowerShell版本和其他一切在我这方面都很好,但我无法从所需的repo下载代码。因此,我首先执行了以下命令以满足TLS版本的要求,然后执行了所需的命令以下载最新版本的githubActions runner

[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 RestMethod
也失踪了吗?@briantist你在想什么?我发现了另一篇关于失踪commandlet的帖子:measure命令。如果您也不知道这一点,可能IoT在没有文档的情况下被剥离了。这些都是模块
Microsoft.PowerShell.Utility
的一部分。不知道那是缺失还是不完整。当您尝试获取模块时,您是否在列表中看到了这一点?尽管
Get Host
是OP的信息来源。不知道它是否存在,但是limited@Matt是的,我注意到了同样的事情,它在那个模块中,但看起来整个模块不太可能丢失。但是,
Invoke RestMethod
使用相同的底层.Net对象来完成它的脏工作,所以我想知道它是否也丢失了。虽然这是一个常见的问题和答案,但powershell 5核心似乎已经删除了它。“Invoke WebRequest已从powershell 5中剥离”是什么意思?我在PowerShell 5.1.16299.785(Windows 10)中试用时,它运行良好。是否“从PowerShell 6.0.0开始Invoke WebRequest仅支持基本解析。”。已从中删除(但似乎从版本6开始)?@PeterMortensen能否请您简要解释一下,您提供的用于Invoke WebRequest的wiki引用已从PowerShell Core中删除?我在那里找不到这样的说法。