Запуск пакетного файла с повышенными правами через GPO

Запуск пакетного файла с повышенными правами через GPO

У меня есть ярлык, который использует Google Chrome. В нашей среде есть XP и Windows 7, и я хочу использовать только один ярлык для обеих ОС. Причина в том, что наша среда довольно запутанная, некоторые пользователи все еще используют сценарии входа, в то время как другие используют GPO для всего.

Вот пакетный файл, который я хочу использовать для сценария запуска компьютера:

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\"
)

Я создал новый GPO > поместил скрипт в каталог для этой политики \\domain\SysVol\domain\Policies\{}\Machine\Scripts\Startup> добавил скрипт в Computer Configuration > Policies > windows Settings > Scripts > Startup > script.bat. Я связал этот GPO с созданием OU, и объект компьютера находится в этом OU.

Я сделал GPResult и вижу, что GP был применен, но он не создал символическую ссылку, которую я ожидал. Есть ли проблема с NT Authority\Local System, создающей папки в C:\? Я пробовал изменить скрипт на just, mkdir C:\tempи это тоже не сработало.

Примечание: Приведенный выше скрипт работает отлично, если я запускаю его в конфигурации пользователя, и этот пользователь имеет права администратора.

ОБНОВЛЕНИЕ: Пытался сделать mklink с Powershell, но тоже безуспешно. Я почти уверен, что вы не можете запустить mklink в скрипте Start Up. Поэтому вместо использования этого скрипта я просто использую Item Level Targeting в User's preference, чтобы скопировать другую ссылку в зависимости от ОС.

решение1

Возможно, сетевое подключение вашего компьютера не инициализировано до того, как групповая политика попытается запустить ваш скрипт. Статья MSKBКлиенты Windows 7 периодически не применяют групповую политику при запускеобъясняет поведение, при котором Startup Scripts терпят неудачу, поскольку сетевое соединение не готово, когда GP выполняет скрипт. Предлагаются два решения:

Через групповую политику:

  • НастройтеВремя ожидания обработки политики запускаустанавливая Computer Configuration > Policies > Admin Templates > System > Group Policyзначение, достаточное для того, чтобы компьютер инициализировал свое сетевое соединение. Я использовал 10 секунд с большим успехом.

Через Реестр:

  • Создайте значение DWORDGpNetworkStartTimeoutPolicyValueв подключаемом ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogonи укажите десятичное значение времени ожидания в секундах.

Связанный контент