我正在通过批处理文件将执行策略权限设置为 PowerShell,以允许运行 PowerShell 脚本。
默认情况下,Windows PowerShell 具有执行策略Restricted
。是的,我们可以使用提升的(管理员)权限启动 PowerShell 并Unrestricted
手动设置策略。
现在的问题是如果我们可以手动设置它,那么通过批处理文件设置它是否有意义?
当您需要在多台机器上运行脚本文件时(例如出于测试目的),手动为每台机器设置策略权限可能会很麻烦。虽然这对一个人来说并不是什么工作,但是当您要求用户自己进行此设置时,这可能是一种开销。一些用户喜欢尽可能少地做事情。
所以这个想法是用户只需要执行具有管理员权限的批处理文件,这将自动设置策略权限。执行脚本的路径应该不是问题,因为批处理文件和 PowerShell 脚本都在同一个文件夹中(推荐)。
这是我迄今为止在我的批处理(.bat)文件中尝试过的。
powershell.exe -Set ExecutionPolicy Unrestricted -FILE file.ps1 "args[0]" "args[1]"....
file.ps1
PowerShell 脚本的名称在哪里args[0]
, , args[1]
,.... 是传递给脚本的可选参数。
唯一在这里不起作用的是执行策略。这也可能是一些语法问题。请指教。