据我所知,PowerShell 6和Core使用.Net Core框架,并且是跨平台的,而PowerShell 5.1使用.Net框架。据我所知,PowersSell Core也没有5.1 那么发达
你建议我开始学习什么?我还是一名高中生,想在INFOSEC工作。我想开始学习PowerShell来创建自动编辑设置的脚本。你建议我从5.1、6还是核心开始?有资源建议吗?
随着时间的推移,命名发生了一些变化。一开始,PowerShell只是Windows,因为它使用了完整的.NET Framework。这些是PowerShell版本1.0到5.1,现在我们通常称之为"PowerShell";Windows PowerShell";。其二进制为powershell.exe
。
从PowerShell 6.0开始,该语言使用.NET Core,并成为跨平台语言。这一个有一个名为pwsh
或pwsh.exe
的二进制文件。有一段时间,这被称为PowerShell核心。
从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远程处理从pwsh
进入Windows系统,以这种方式执行模块。
至于你应该学什么?两者都有,尤其是对于infosec。
需要记住的一点是,Windows PowerShell在所有现代Windows版本中都是开箱即用的,至少目前,您必须安装其他版本。
但是,所有的新开发、新功能等都在跨平台版本中发生。
不同版本之间的语言本身没有太大区别,只要在查看文档时注意版本下拉列表,就应该很容易理解。