Запуск пакетного файла с повышенными правами через объект групповой политики
У меня есть ярлык, который специально использует 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\"
)
Я создал новый объект групповой политики> поместил скрипт в каталог для этой политики \\domain\SysVol\domain\Policies\{}\Machine\Scripts\Startup
> добавить скрипт в Computer Configuration > Policies > windows Settings > Scripts > Startup > script.bat
, Я связал этот объект групповой политики с подразделением создания, и объект компьютера находится в этом подразделении.
Я сделал GPResult и вижу, что GP был применен, но он не создал символическую ссылку, которую я ожидал. Есть ли проблема с тем, что NT Authority\Local System создает папки в C:\? Я попытался изменить скрипт на просто mkdir C:\temp
и это тоже не сработало.
Примечание. Приведенный выше сценарий прекрасно работает, если я запускаю сценарий в разделе "Конфигурация пользователя" и у этого пользователя есть права администратора.
ОБНОВЛЕНИЕ: Пытался сделать mklink с Powershell, но безуспешно. Я уверен, что вы не можете запустить mklink в скрипте запуска. Поэтому вместо того, чтобы использовать этот сценарий, я просто использую таргетинг на уровне элементов под предпочтениями пользователя, чтобы скопировать другую ссылку в зависимости от ОС.
1 ответ
Возможно, сетевое подключение вашего компьютера не инициализировано до того, как групповая политика попытается запустить ваш сценарий. Статья MSKB Windows 7 Клиенты периодически не в состоянии применять групповую политику при запуске объясняет поведение, где Сценарии запуска не работают, потому что сетевая ссылка не готова, когда GP выполняет сценарий. Предлагаются два решения:
Через групповую политику:
- Настройте параметр времени обработки политики запуска в
Computer Configuration > Policies > Admin Templates > System > Group Policy
до значения, достаточного для того, чтобы компьютер инициализировал свое сетевое соединение. Я использовал 10 секунд с большим успехом.
Через реестр:
- Создайте значение DWORD GpNetworkStartTimeoutPolicyValue в подразделе
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
и укажите десятичное значение времени ожидания в секундах.