通过 BATCH 脚本退出远程 GPO

通过 BATCH 脚本退出远程 GPO

好吧,

我正在尝试编写一个远程 GPO 脚本,该脚本将从我们的一台管理机器向某些服务器推送 GPUPDATE 命令。经过一番谷歌搜索,我找到了一个我尝试改编/运行的脚本。

然而问题是当我通过批处理文件运行它时,它在执行第 9 行时出错(公平地说,它没有错误,它只是退出脚本)

通过 pastebin 链接到脚本: http://pastebin.com/ugmC9uEr

脚本代码:

@echo on

XPGPORef1=gpupdate.exe /Target:User /force
XPGPORef2=gpupdate.exe /Target:Computer /force

Win2kGPORef1=secedit.exe /refreshpolicy user_policy
Win2kGPORef2=secedit.exe /refreshpolicy machine_policy

For /f “Tokens=*” %%a in (ComputerList.txt) Do (
SET Comp_name=%%a

Ver.exe \\%comp_name% > Hostver.txt

Find /I “XP” < Hostver.txt > CheckCC.txt

IF %errorlevel% == 0 (
Psexec.exe \\%comp_name% Gpupdate.exe /Target:User /force
Psexec.exe \\%comp_name% Gpupdate.exe /Target:Computer /force
) ELSE (
Psexec.exe \\%comp_name% secedit.exe /refreshpolicy user_policy
Psexec.exe \\%comp_name% secedit.exe /refreshpolicy machine_policy
) 
pause

如果我通过 DOS 提示窗口手动运行第 9 行代码,例如执行以下操作:

For /f “Tokens=*” %a in (ComputerList.txt) Do ( echo %a) 

它将正常运行并回显列表中的所有计算机名称。

有人介意帮我一下吗?:)

干杯

PS:该脚本将尝试对 Win2k8/Win2K3 和 Win2K 计算机进行 GPUPDATE。

答案1

降低组策略刷新间隔gpupdate在这些服务器上只需 5-10 分钟,而不是在所有服务器上执行远程操作。

答案2

我明白远程让机器更新通过组策略获得的设置的能力是多么有益。但是远程为用户执行 gpupdate 不起作用。您需要在用户帐户的上下文中执行此操作。我怀疑您主要感兴趣的是计算机配置的 gpupdate。

http://www.specopssoft.com/products/specops-gpupdate感兴趣吗?免责声明我还没有用过它。

相关内容