我有一个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
。
有几个警告:
psexec
或GPO脚本(不确定)。 psexec
它会给你一个关于参数太长的错误。 所以你应该把这个命令保存为一个.bat文件,然后用psexec
运行它。 非常感谢@PetSerAl谁帮我找到了这一点。