PowerShell 5.1、6 和核心之间有什么区别?

zoo*_*boo 3 powershell powershell-core powershell-6.0

据我了解,PowerShell 6 和 Core 使用 .Net Core 框架并且是跨平台的,而 PowerShell 5.1 使用 .Net 框架。据我了解,PowersSell Core 也没有 5.1 那样发达

你会建议我开始学习什么?我还是一名高中生,想在 INFOSEC 工作。我想开始学习 PowerShell 来创建自动编辑设置的脚本。你会建议我从 5.1、6 还是核心开始?有什么资源推荐吗?

bri*_*ist 7

随着时间的推移,命名发生了一些变化。一开始,PowerShell 仅适用于 Windows,因为它使用了完整的 .NET Framework。这些是 PowerShell 版本 1.0 到 5.1,现在我们通常称之为“Windows PowerShell”。二进制文件是powershell.exe.

从 PowerShell 6.0 开始,该语言使用 .NET Core,并成为跨平台的。这个有一个名为pwshor的二进制文件pwsh.exe。有一段时间,这被称为 PowerShell Core。

从 PowerShell 7 开始,“核心”命名被删除。“PowerShell”是指这个仍在开发中的跨平台开源版本。

Windows PowerShell 自 5.1 起就不再开发,除了可能的安全修复程序。


据我了解,PowersSell Core 也没有 5.1 那样发达

一般来说,情况正好相反。所有新的发展都发生在所谓的“核心”中。

但是当它第一次出现时,由于各种原因,它在 Windows 上缺少一些功能:

  • .NET Core 不支持 .NET Framework 支持的所有 Windows 功能
  • 某些功能依赖于封闭源代码、特定于 Windows 平台的功能
  • 许多二进制模块(尤其是与 Active Directory 等 Microsoft 产品相关的真正流行的模块)本身是用 .NET Framework 编写的,无法轻松移植,也不能依赖 Windows 产品本身的组件来运行。

已经做了很多工作来解决这个问题,所以这已经变得越来越不重要了。还有一些变通方法,例如使用 PowerShell 远程处理pwshWindows 系统以这种方式执行模块的模块。


至于你应该学什么?两者,尤其是对于信息安全。

要记住的一件事是,Windows PowerShell 在所有现代 Windows 版本中都是开箱即用的,至少现在,您必须安装其他版本。

但是所有的新开发、新功能等都是在跨平台版本中真正发生的。

语言本身在版本之间没有太大区别,应该相当容易理解,只要您在查看文档时注意版本下拉列表。