В планировщике задач Windows 7 у меня есть задача, которая запускается, когда любой пользователь входит в систему. Эта задача запускается от имени администратора, поэтому он может получить соответствующие права и запустить файл bat.
Я хотел бы передать имя пользователя (идентификатор пользователя) пользователя, который вошел в систему и запустил задачу, в файл bat. Мне нужно запустить файл bat, используя учетную запись администратора, в результате чего для переменной среды USERNAME устанавливается значение Administrator вместо имени пользователя, которое вошло в систему.
Как получить идентификатор пользователя, который вошел в систему, вызвав запуск задачи?
Это не идеально, но у вас может быть отдельная задача, которая просто одновременно записывает имя пользователя в файл журнала и позднее сопоставляет журналы. В этом отношении, поскольку задача запускается при входе в систему, эта информация уже доступна в журналах событий. Если вы действительно отчаялись не соотносить их позже, вы можете добавить код (или шаг) к существующей задаче, чтобы получить самое последнее событие входа в систему.
Просматривая мои собственные журналы более внимательно, я вижу, что вам нужно событие с идентификатором 4624, но только там, где тип входа равен 2 или 7. Я видел несколько событий входа в систему типа 5 для системных учетных записей, выполняющих различные действия. Здесь больше информации:
http://www.windowsecurity.com/articles-tutorials/misc_network_security/Logon-Types.html