Powershell GPO启动脚本,参数

问题描述:

我有一个PowerShell脚本,我想在机器启动时作为GPO运行。通常我只是运行“powershell.exe -ExecutionPolicy Bypass -File c:\ temp \ 123.ps1 -Admin”来运行cmd,但如何从GPO运行,如何定义文件路径?Powershell GPO启动脚本,参数

上述CMD文件不起作用。 我也试过它作为一个PowerShell启动gpo脚本,但这也不起作用。

+0

也许你必须指定powershell.exe的完整路径?它位于'%windir%\ system32 \ WindowsPowershell \ v1.0' iirc(我现在正在打电话^^) – sodawillow

这取决于您的服务器版本,但若干最新版本的服务器允许您创建GPO,并在其中有“PowerShell脚本”选项卡(以及“脚本”),您可以简单地使用该选项卡指向PowerShell脚本。这会将您的文件复制到Sysvol下的GPO目录中。

另一个选择,使用您提到的旧方法是使用-file指向PowerShell文件。你可以通过几种方式来解决这个问题。 如果,例如,指定一个cmd文件,你可以在PowerShell脚本复制到该文件夹​​,然后在CMD您可以使用类似:

%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -exec bypass -file %~dp0MyPowerShellScript.ps1 

由于CMD文件和PowerShell文件是在同一GPO目录,这通常是在

\\{Yourdomain}\sysvol\{YourDomain}\Policies\{SomeGuid}\Machine\Scripts\ 

(OK,在我的头顶打字这一点,你需要检查的实际路径)。当然,你也可以使用完整路径,但为什么你可以只使用'当前文件夹',即"%~dp0"

请注意,使用“PowerShell脚本”选项卡而不是“脚本”给你一些好处,就像照顾ExecutionPolicy一样,所以你应该使用它,如果可以的话。

希望这会有所帮助!