1

На компьютере с Windows Vista Business у меня есть задание планировщика заданий Windows, которое запускается каждый раз, когда любой пользователь входит в систему. Задача запускается как определенный пользователь с повышенными правами администратора, потому что сценарий выполняется с файлового сервера, который требует аутентификации этого пользователя для доступа, и рассматриваемый сценарий будет выполнять операции, которые требуют полного контроля над машиной, на которой он выполняется. Сценарий работает отлично, получает доступ к сетевым ресурсам и фантастически выполняет административные задачи, однако% username% и другие переменные среды предназначены для повышенных прав пользователя, а не для пользователя, который фактически вошел в систему.

Есть ли способ запустить задачу с повышенными текущими зарегистрированными переменными среды пользователя? Или есть какой-то способ узнать, из какой учетной записи было выполнено повышенное приглашение (если я смогу это выяснить, я смогу получить переменные окружения для этого пользователя)?

Чтобы прояснить мой вопрос, вот сценарий и строка из моего сценария. Предположим, что обычный пользователь без имени администратора по имени Боб входит в систему. Планировщик задач запускает скрипт как пользователь с повышенными правами iAmAdmin. Скрипт выполняет команду:

eventcreate /t information /id 118 /l SYSTEM /so "My Script" /d "%username% logged in on %date% at %time%"

% Username% в описании отображается как iAmAdmin вместо Боба. Есть ли способ получить% username% (или любые другие переменные среды) для учетной записи, с которой было запущено приглашение с повышенными правами (т. Е. Боб обнаруживает% username% вместо iAmAdmin, поскольку учетная запись Боба регистрируется в)?

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

0