PowerShell ps1 脚本默认在记事本中打开,而不是在 PowerShell ISE 中打开。这是为什么?

PowerShell ps1 脚本默认在记事本中打开,而不是在 PowerShell ISE 中打开。这是为什么?

我需要定期启动虚拟机,然后必须将 .ps1 和 .psm1 文件关联从记事本切换到 PowerShell ISE。

有人知道为什么它不是默认编辑器吗?
它不会自动运行脚本,所以我不认为这是一个安全漏洞。

答案1

您几乎回答了您自己的问题:这是一种安全措施。

Windows PowerShell 博客文章Windows PowerShell 和“PowerShell 蠕虫” 详细介绍了 PowerShell 的安全功能,文章中也对这些功能进行了总结 PowerShell 安全性

PowerShell 的设计显然比 VBScript 或 cmd.exe 更加注重安全性:

  1. 默认情况下,.ps1 脚本文件与记事本相关联。双击脚本不会启动它。

  2. 要在 PowerShell 中引用脚本,您必须指定文件路径,因此即使脚本名为 dir.ps1,输入 dir 也无法启动它。引用它的最短方式是 .\dir.ps1。

  3. 最后执行政策默认情况下不允许您运行任何脚本。您可以通过允许运行由受信任的机构签名的脚本来稍微提高限制。

答案2

在文本编辑器中打开的行为是经过设计的。原因有些微妙,微软首次推出 Powershell 时在场的我们还记得这一点。你不太可能在某处找到它的记录,但 Ed Wilson 可能在他的第一本 Powershell 书籍或博客中提到过它。

Powershell 是为特定受众(系统管理员)开发的,而不是普通大众或技术人员。它对所有人都开放,但设计针对特定群体。虽然 ISE 很不错,但它占用大量资源,不适合系统管理员使用。如果我们从头开始编写脚本或对脚本进行重大修改,我们肯定会使用 ISE。但大多数时候,当我们必须接触脚本时,是为了进行特定且快速的更改,或确认细节。

系统管理员通常更喜欢速度更快或适合工作的工具。在这种情况下,就是在普通的旧文本编辑器中查看脚本。还有一句老话,人们不喜欢改变,这句话也适用于她。在使用 Powershell 之前,我们的系统管理员使用批处理、vbs、python 等编写脚本,这些都基于文本编辑器。微软可能认为,一次进行太多的改变会妨碍人们采用他们的新 shell 平台。 此链接可能会给你一些启发

相关内容