在PowerShell中,除了尝试控制哪些脚本文件可以运行之外,限制性执行策略是否有优势?
默认情况下,不允许运行PowerShell脚本,但似乎如果恶意方想要运行PowerShell脚本,他们可以使用调用带有设置为“bypass”的-ExecutionPolicy参数的PowerShell的BAT文件进行引导。
我是否漏掉了什么,或者这样做是否会破坏执行策略机制?为什么要签名脚本(看起来很麻烦),而不是只需使执行策略不那么严格?
以下是我编写的BAT脚本,它创建了一个未签名的.ps1文件并运行它。它适用于执行策略为“受限制”的计算机,应该禁止脚本。UAC已启用,但没有弹出提升提示。它甚至拨打互联网并获取"Hey, Scripting Guy!"博客的最新标题。
默认情况下,不允许运行PowerShell脚本,但似乎如果恶意方想要运行PowerShell脚本,他们可以使用调用带有设置为“bypass”的-ExecutionPolicy参数的PowerShell的BAT文件进行引导。
我是否漏掉了什么,或者这样做是否会破坏执行策略机制?为什么要签名脚本(看起来很麻烦),而不是只需使执行策略不那么严格?
以下是我编写的BAT脚本,它创建了一个未签名的.ps1文件并运行它。它适用于执行策略为“受限制”的计算机,应该禁止脚本。UAC已启用,但没有弹出提升提示。它甚至拨打互联网并获取"Hey, Scripting Guy!"博客的最新标题。
echo write-host "`r`nPowershell code running on $(hostname).`r`n`r`nHere's the latest headline from the 'Hey, Scripting Guy!' blog: '$(([xml](New-Object Net.WebClient).DownloadString("http://blogs.technet.com/b/heyscriptingguy/atom.aspx")).feed.entry[0].title)'.`r`n`r`nPress Enter to close.`r`n"; read-host > script.ps1
powershell -ExecutionPolicy bypass -Command .\script.ps1