PowerShell v5 中的 Invoke-WebRequest 替代方案

PowerShell v5 中的 Invoke-WebRequest 替代方案

在以前版本的 PowerShell 中,我曾经Invoke-WebRequest通过 HTTP 下载文件。在使用带有 PowerShell 5.1 的 Server 2016 Nano 时,我发现此命令已被删除!

我该如何在几乎只有 PowerShell 的操作系统上从互联网下载文件?我是否遗漏了什么?微软为什么要删除此功能?

我知道我可以使用.NET 命令,但这比一个命令要费力得多。

$PS版本表:

    Name                           Value
    ----                           -----
    PSEdition                      Core
    PSVersion                      5.1.14284.1000
    WSManStackVersion              3.0
    BuildVersion                   10.0.14284.1000
    SerializationVersion           1.1.0.1
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
    PSRemotingProtocolVersion      2.3
    CLRVersion                     4.0.30319.34011

答案1

Invoke-WebRequest在 Windows 10 Pro 上的 PowerShell 5.1.14393.0 中运行良好。

Nano Server 上的 PowerShell 与桌面/完整服务器版本不同,它是 PowerShell Core 版本,而不是桌面版本。因此,使用 Nano Server 时某些命令/功能将会缺失。

来自微软的 TechNet -“Nano Server 上的 PowerShell”

从 5.1 版开始,PowerShell 有不同的版本,分别具有不同的功能集和平台兼容性。

  • 桌面版:基于 .NET Framework 构建,并提供与在 Windows 完整版(如 Server Core 和 Windows Desktop)上运行的 PowerShell 版本的脚本和模块的兼容性。
  • 核心版:基于 .NET Core 构建,并提供与在 Windows 的精简版本(如 Nano Server 和 Windows IoT)上运行的 PowerShell 版本的脚本和模块的兼容性。

在同一篇文章中的“Nano Server 中不可用的 Windows PowerShell 功能”下:

  • 与 Web 相关的 cmdlet { Invoke-WebRequest、Invoke-RestMethod、New-WebServiceProxy、Send-MailMessage、ConvertTo-Html }

相关内容