.bat
在 Windows 中,每当我单击.cmd
或.vbs
脚本(Batch 和 VBScript)文件时,它们都会由各自的引擎(命令提示符和 windows 脚本宿主)执行。
那么,为什么默认.ps1
关联的是记事本的powershell扩展,而不是Powershell呢?
.bat
在 Windows 中,每当我单击.cmd
或.vbs
脚本(Batch 和 VBScript)文件时,它们都会由各自的引擎(命令提示符和 windows 脚本宿主)执行。
那么,为什么默认.ps1
关联的是记事本的powershell扩展,而不是Powershell呢?
显然,微软试图将 PowerShell 设计为默认安全。尽管微软似乎没有在任何地方明确说明这一点,但这种限制可能是为了防止用户被诱骗执行和传播恶意脚本。
这里有一个很好的描述为什么这可能是危险的:
但实际上,
.bat
只需将代码作为命令行参数传递给 powershell,就可以通过文件执行 powershell 代码。因此 PowerShell 现在依靠AMSI(反恶意软件扫描接口)来阻止恶意脚本。由于某种无法解释的原因,原来的限制被保留了下来。