组策略启动脚本需要提升权限

组策略启动脚本需要提升权限

我有一个脚本,我想在启动时运行,但需要提升权限。有没有办法使用组策略来实现这一点?

我尝试使用 GPO 将其添加为启动脚本,但它似乎无法运行。如果我从标准 cmd 提示符运行它,则会出现访问被拒绝的情况,但如果我右键单击命令提示符并选择“以管理员身份运行”,则它可以正常工作,因此我怀疑这是一个权限问题。

该脚本将每个网卡上的 MTU 设置为 1400,如下所示

Dim strDNSDomain  
Dim strComputer  
Dim strID  
Dim strKeyPath  
Dim strValueName  
Dim strDWValue  

Const HKEY_LOCAL_MACHINE = &H80000002  
Const DEFAULT_MTU_Size = 1400  
const KEY_SET_VALUE = &H0002

'====  Gets the Setting for MTU from the command line in the form of /MTU:1500 ====  

Set colNamedArguments = Wscript.Arguments.Named  

strComputer = "." 
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")  
set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

strDWValue = DEFAULT_MTU_SIZE

Set colAdapters = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration")  
For each objAdapter in colAdapters  
   strDNSDomain = objAdapter.DNSDomain  
   if Instr(1, strDNSDOmain, strTemp) >0 then  
       strID = objAdapter.SettingID  
       strKeyPath = "SYSTEM\CurrentControlSet\Services\TCPIP\Parameters\Interfaces\" & strID  
       strValueName = "MTU" 

    oReg.CheckAccess HKEY_LOCAL_MACHINE, strKeyPath, KEY_QUERY_VALUE, bHasAccessRight
    If bHasAccessRight = True Then
        oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
        WScript.Echo strKeyPath & " value " & strValueName & " contains " & dwValue
        oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strDWValue  
        WScript.Echo strKeyPath & " value " & strValueName & " changing to " & strDWValue
        oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
        WScript.Echo strKeyPath & " value " & strValueName & " changed to " & dwValue
    Else
        WScript.Echo "Cannot set registry value - access denied"
    End if
   End if  
Next  

答案1

脚本放置在计算机配置\Windows 设置\脚本(启动/关机)运行为本地系统这通常是安装程序等所需的全部内容。使用组策略部署的 MSI 也是如此。

您知道您的脚本需要什么权限吗?您的脚本执行什么操作需要这些权限?

从 Sysinternals 获取一份 Process Monitor 的副本,使用标准用户帐户,监视脚本以了解其正在执行的操作以及运行它需要哪些额外权限。然后,您可以使用这些信息找出本地系统帐户无法运行它的原因。

编辑:您可以使用启动脚本来运行 net shell 命令

netsh interface ipv4 set subinterface interface="Local Area Connection" mtu=1400

这是脚本中需要的一行代码。有什么用?

刘易斯

答案2

您可以通过组策略首选项完成注册表更新。如本 TechNet 文档中所述,GPP 选项中有一个很好的子集可用于更改注册表 -http://technet.microsoft.com/en-us/library/cc753092.aspx

相关内容