通过GPO运行具有提升权限的batch file

我有一个专门使用Google Chrome的快捷方式。 在我们的环境中,我们有XP和Windows 7,我只想为两个操作系统使用一个快捷方式。 原因是我们的环境相当混乱,一些用户仍然使用login脚本,而其他用户则使用GPO。

这里是我想用于计算机启动脚本的batch file

if exist "C:\Program Files\Google\" ( mklink /d "C:\Program Files\Google\Chrome" "C:\Program Files (x86)"\Google\Chrome" ) else ( mklink /d "C:\Program Files\Google\" "C:\Program Files (x86)"\Google\" ) 

我创build了一个新的GPO>将该脚本放置在该策略\\domain\SysVol\domain\Policies\{}\Machine\Scripts\Startup >将脚本添加到Computer Configuration > Policies > windows Settings > Scripts > Startup > script.bat 。 我将该GPO链接到创buildOU,而计算机对象在该OU中。

我做了一个GPResult,我看到GP被应用了,但是它并没有创build我期待的符号链接。 NT Authority \ Local System在C:\中创build文件夹有问题吗? 我试着改变脚本为mkdir C:\temp ,但也没有工作。

注意:如果我在用户configuration下运行脚本并且该用户具有pipe理权限,则上述脚本完美地工作正常。

更新:试图做与Powershell mklink没有任何成功。 我很确定你不能在启动脚本中运行mklink。 因此,而不是使用此脚本,我只是在用户的首选项下使用项目级别目标根据操作系统复制不同的链接。

在组策略尝试运行您的脚本之前,您的计算机的networking连接可能未被初始化。 MSKB文章Windows 7客户端在启动时间歇地无法应用组策略说明启动脚本失败的行为,因为GP执行脚本时networking链接未准备就绪。 提供两种解决scheme:

通过组策略:

  • 将“ Computer Configuration > Policies > Admin Templates > System > Group Policy中的“ 启动策略处理等待时间”设置Computer Configuration > Policies > Admin Templates > System > Group Policy为足以让计算机初始化其networking连接的值。 我用了十秒钟,取得了巨大的成功。

通过registry:

  • 在子项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon创buildDWORD值GpNetworkStartTimeoutPolicyValue ,并以秒为单位提供十进制等待时间值。