PowerShell 是否适用于 Windows 以外的操作系统?

Fre*_*187 7 windows linux powershell macos

我的计算机科学教授做了一个小测验,其中一个问题是“对还是错:PowerShell 可以在 Windows、Mac 和 Linux 上运行”;正确答案是“假”。他坚持认为 PowerShell 只是 Windows 的东西。但这里有几个网站另有说法:

https://azure.microsoft.com/en-us/blog/powershell-is-open-sourced-and-is-available-on-linux/

https://github.com/PowerShell/PowerShell

那么哪个是真的?PowerShell 是否适用于 Linux 和 Mac 以及 Windows?

Ben*_*n N 10

是的。

PowerShell 的大部分内容都是 .NET,因此它可以在任何具有公共语言运行时 (CLR) 的操作系统上运行。在 Windows 上,这是 .NET Framework。对于其他操作系统(包括 Linux!),您可以使用CoreCLR,它是 .NET Framework 的一个开源跨平台子集。

正如您在 GitHub 上的 PowerShell 存储库中发现的那样,支持相当多的操作系统和发行版。例如,这里是 Ubuntu 的说明。演示(源页面):

在 Ubuntu 上运行的 PowerShell

有人可能会争辩说,并非所有PowerShell 都在非 Windows 环境中可用。某些功能依赖于只能在 Windows 上找到的库。例如,由 返回ParsedHtmlHtmlWebResponseObject类型的属性Invoke-WebRequest仅在 Windows 上有用,因为它包含一个来自非托管库的 COM 对象,mshtml.dll具体来说。在其他平台上,什么都没有。当然,还有一些 cmdlet 可以管理仅在 Windows 上才能找到的系统,例如现代应用程序(Get-AppxPackage和朋友)。

尽管如此,PowerShell 基础架构在其他操作系统上运行良好。许多 cmdlet 可以在任何地方使用,而且支持也越来越好。