Мне нужно обновить файл Windows в папке system32, в которой я создал сценарий для выполнения этой задачи. Когда я запускаю его локально в системе (из приглашения с повышенными привилегиями), он работает нормально.
Я создал объект групповой политики, в котором этот сценарий настроен в разделе "Политики компьютера> Параметры Windows> Сценарии> Запуск" (насколько я помню, он запускает сценарий при запуске с учетной записью SYSTEM, которая имеет все необходимые привилегии)
Сценарий выполняется, но файл не обновляется. Я знаю, что это из-за того, что UAC предотвращает это.
Есть ли способ добиться этого (без отключения UAC)?
Вам нужно запускать скрипт каждый раз, чтобы обновить файл, или вам нужно запускать его только один раз локально? В последнем случае решением было бы использование очень хитрого консольного приложения, PSexec. Обратите внимание, что вы должны быть администратором на машине, на которой выполняется скрипт.
Затем вы создаете папку на локальном / подключенном диске, содержащую:
Мои обычные полезные данные PSexec:
пример программы запуска выглядит так:
@echo off
CLS
set /p PCName=Type the Domain Name or IP address of PC:
echo.
COPY local_payload.cmd \\%PCName%\c$\Temp
psexec \\%PCName% C:\Temp\local_payload.cmd
REM after the payload has been launched you can view the output
REM edit: if it does not want to work, try adding an -s switch that will make it run as a system account.
pause
REM here you delete everything after you are finished
DEL \\%PCName%\c$\Temp\SMS_LOCAL.cmd
pause
:eof