0

我正在通过批处理文件将执行策略权限设置为 PowerShell,以允许运行 PowerShell 脚本。

默认情况下,Windows PowerShell 具有执行策略Restricted。是的,我们可以使用提升的(管理员)权限启动 PowerShell 并Unrestricted手动设置策略。

现在的问题是如果我们可以手动设置它,那么通过批处理文件设置它是否有意义?

当您需要在多台机器上运行脚本文件时(例如出于测试目的),手动为每台机器设置策略权限可能会很麻烦。虽然这对一个人来说并不是什么工作,但是当您要求用户自己进行此设置时,这可能是一种开销。一些用户喜欢尽可能少地做事情。

所以这个想法是用户只需要执行具有管理员权限的批处理文件,这将自动设置策略权限。执行脚本的路径应该不是问题,因为批处理文件和 PowerShell 脚本都在同一个文件夹中(推荐)。

这是我迄今为止在我的批处理(.bat)文件中尝试过的。

powershell.exe -Set ExecutionPolicy Unrestricted -FILE file.ps1 "args[0]" "args[1]"....

file.ps1PowerShell 脚本的名称在哪里args[0], , args[1],.... 是传递给脚本的可选参数。

唯一在这里不起作用的是执行策略。这也可能是一些语法问题。请指教。

4

2 回答 2

2

Windows 7 自带 Powershell v2.0

只需转到运行或开始菜单并键入“Powershell”并按 Enter。

要运行脚本,您可能必须做Set-ExecutionPolicy unrestricted或类似的事情。看这里 - http://technet.microsoft.com/en-us/library/ee176961.aspx

于 2012-05-23T09:32:43.193 回答
1

这是对我有用的解决方案。

@powershell -ExecutionPolicy Unrestricted -FILE file.ps1 "args[0]" "args[1]" "args[2]"

最终,如您所见,问题出在语法上。

于 2012-09-27T11:02:38.847 回答