Назад | Перейти на главную страницу

Сценарию запуска групповой политики требуются повышенные привилегии

У меня есть сценарий, который я хочу запустить при запуске, но для этого требуются повышенные права. Есть ли способ сделать это с помощью групповой политики?

Я попытался добавить его в качестве сценария запуска с помощью GPO, но он не запускается. Если я запускаю его из стандартной командной строки, тогда доступ запрещен, но если я щелкну правой кнопкой мыши командную строку и выберу «Запуск от имени администратора», она будет работать нормально, поэтому я подозреваю, что это проблема с разрешением.

Сценарий устанавливает 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  

Скрипты помещены в Конфигурация компьютера \ Параметры Windows \ Скрипты (запуск / завершение работы) работают как Локальная система обычно это все, что требуется для установки программ и т. д. То же самое можно сказать и о MSI, развернутых с использованием групповой политики.

Вы знаете, какие права требуются вашему скрипту? Что делает ваш скрипт, требующий этих привилегий?

Возьмите копию Process Monitor от Sysinternals и, с использованием стандартной учетной записи пользователя, следите за своим скриптом, чтобы узнать, что он делает и какие дополнительные привилегии необходимы для запуска. Затем вы можете использовать эту информацию, чтобы выяснить, почему учетная запись локальной системы не может ее запустить.

РЕДАКТИРОВАТЬ: вариант, доступный вам, - использовать сценарий запуска для запуска команды сетевой оболочки

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

Это единственный лайнер, который вам нужен в вашем скрипте. Любое использование?

Льюис

Вы можете выполнить обновления реестра с помощью настроек групповой политики. Существует хороший набор параметров GPP для изменений реестра, как описано в этом документе TechNet - http://technet.microsoft.com/en-us/library/cc753092.aspx