Хорошо, вот сценарий. Мы делаем некоторые изменения в сети, где я работаю, и в противном случае пришлось бы прикасаться к каждому ПК, чтобы сделать это. Я создал командный файл с кодом ниже. Очевидно, с нашими настройками DNS и пароль администратора.

@echo off

>nul wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder     ("DNS1", "DNS2")


>nul net user Administrator NEWADMINPASSWORD


2>nul net localgroup administrators /delete "Domain Users" 

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

Любая помощь будет принята с благодарностью. Благодарю.

2 ответа2

1

Запустите Batch с самыми высокими привилегиями под системной учетной записью, используя Task Scheduler.

  1. Открыть планировщик заданий
  2. перейдите к свойствам вашей задачи, которая запускает командный файл
  3. Выберите вкладку «Общие»
  4. Убедитесь, что настройки вашей задачи такие ...

    Снимите флажок Запускать только когда пользователь вошел в систему

    Проверьте Run, если пользователь вошел в систему или нет

    Проверьте Run с самыми высокими привилегиями

Это обеспечит выполнение задачи от имени учетной записи с явными разрешениями "Полный доступ" к системе с наивысшими привилегиями.

Нажмите здесь - ServerFault Solution

0

Закончилось выполнение его в сценарии входа в систему. Тем не менее возникла проблема, связанная с тем фактом, что вызываемый нами сценарий хранился на сетевом диске, сопоставляемом тем же сценарием входа. Из-за того, как быстро все это работало, диск X не отображался до вызова сценария. Вместо этого мы использовали путь UNC, и скрипт работал без нареканий.

Благодарю.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .