为什么默认情况下 Powershell 脚本不会 运行 双击?

Why by default Powershell scripts wont run by double-click?

我的问题不是关于如何 运行 双击脚本!
我很好奇这种行为的原因。
.bat.cmd.vbs.exe 和许多其他 运行 可以双击,但 .ps1 不能,为什么?

.ps1 与记事本关联的原因是安全性。

过去,微软因为协会的默认行为而被烧得很惨。默认情况下,Windows' 文件管理器(后来称为文件资源管理器)旨在易于使用。它没有显示文件扩展名。也就是说,MyResume.doc 在默认的资源管理器列表中显示为简单的 MyResume - 它通常也有一个 Word 图标。

虽然这是一种节省屏幕空间的便捷方式,但它提供了一种利用系统的绝佳方式。许多用户只是根据文件的名称和图标双击文件。现在,破解者开始发送具有双重扩展名的文件,如 MyResume.doc.vbs。资源管理器的默认操作是去除 .vbs,这意味着该文件实际上是 Visual Basic 脚本文件。由于 Windows 将 .vbs 关联到 Windows 脚本宿主,脚本文件是在用户权限下执行的。为防止此攻击媒介,Powershell 文件默认不与 powershell.exe 相关联。

著名的扩展漏洞利用案例是情书ILOVEYOU and promise of adult content about Anna Kournikova

另一种蠕虫病毒(抱歉使用了可怕的双关语)是 Windows 屏幕保护程序文件。 .scr files are really just executables。许多用户因为不了解安装屏幕保护程序的风险而被愚弄到系统后门。通过发送扩展名与有效载荷不匹配的文件,并依靠 OS 仍然选择了正确的应用程序关联,进一步利用了这一点。