3

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

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

4

1 回答 1

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 平台特定功能
  • 许多二进制模块(尤其是与 Microsoft 产品相关的真正流行的那些,如 Active Directory)本身是用 .NET Framework 编写的,无法轻松移植,或者依赖 Windows 产品本身的组件来操作。

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


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

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

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

语言本身在版本之间没有太大区别,应该很容易理解,只要您在查看文档时留意版本下拉菜单。

于 2020-11-15T02:51:57.333 回答