使用GPO创buildSymLink

我有一个BATCH脚本,使mklink符号链接。 当我作为pipe理员或系统帐户(使用psexec -s -e )运行它时,它应该可以正常工作。 但是,当我尝试将GPO用作启动脚本时,它会在目标计算机上给我一个错误“您没有足够的权限来执行此操作”。 Windows 7专业版SP1 x64。 UAC被禁用。

批示例:

 mklink C:\log\cmd.link.exe C:\Windows\System32\cmd.exe >> C:\log\symlink.log 2>&1 

我也试图把它包装成一个PowerShell脚本:

 Start-Process -FilePath "$env:windir\system32\cmd.exe" -ArgumentList "/c mklink C:\log\cmd.link.exe C:\Windows\System32\cmd.exe >> C:\log\symlink.txt 2>&1" -Verb RunAs 

但得到了同样的错误。 我究竟做错了什么?

也许有另一种方法来创build与GPO或PowerShell SymLink?

似乎组策略客户端 (gpsvc)服务(因为GPO脚本以其优势运行)不包含创建symolic链接( SeCreateSymbolicLinkPrivilege )的特权:

 C:\>sc qprivs gpsvc [SC] QueryServiceConfig2 SUCCESS SERVICE_NAME: gpsvc PRIVILEGES : SeTakeOwnershipPrivilege : SeIncreaseQuotaPrivilege : SeAssignPrimaryTokenPrivilege : SeSecurityPrivilege : SeChangeNotifyPrivilege : SeCreatePermanentPrivilege : SeShutdownPrivilege : SeLoadDriverPrivilege : SeRestorePrivilege : SeBackupPrivilege 

如果我想使用这个特权,我应该首先把这个特权交给这个服务。 这可以用这个命令完成:

 sc privs gpsvc SeTakeOwnershipPrivilege/SeIncreaseQuotaPrivilege/SeAssignPrimaryTokenPrivilege/SeSecurityPrivilege/SeChangeNotifyPrivilege/SeCreatePermanentPrivilege/SeShutdownPrivilege/SeLoadDriverPrivilege/SeRestorePrivilege/SeBackupPrivilege/SeCreateSymbolicLinkPrivilege 

之后,您将能够在GPO脚本中使用mklink

有几个警告:

  1. 你应该列出所有权限(当前+新)。 否则,您有冒险用一个替换所有权限。
  2. 该命令需要系统帐户权限来设置权限,因此您需要使用psexec或GPO脚本(不确定)。
  3. 如果你打算使用psexec它会给你一个关于参数太长的错误。 所以你应该把这个命令保存为一个.bat文件,然后用psexec运行它。

非常感谢@PetSerAl谁帮我找到了这一点。