在以前版本的 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 }