Можно ли запустить скрипт при загрузке Windows от имени администратора, добавив его в раздел реестра "Текущая версия \ Выполнить" пользователя "NT AUTHORITY\SYSTEM"?
Это ключ автозапуска реестра Windows для моего текущего пользователя (группа администраторов):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
и этот для пользователя "NT AUTHORITY\SYSTEM":
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run
Это простой скрипт "Test.cmd":
echo "Hello" >> C:\Test.txt
Если я добавлю его к текущему пользователю Run
ключ, он работает, но если я добавлю его пользователю SYSTEM, это не так.
Что здесь происходит, и как я могу добавить сценарий.cmd через реестр Windows, который будет выполняться с привилегиями пользователя SYSTEM?
Протестировано на Windows XP, но было бы неплохо получить ответ и для Windows 7.
1 ответ
Я считаю, что ваш первоначальный вопрос / сообщение неверно. Все в соответствии с HKEY_LOCAL_MACHINE применяется независимо от учетной записи пользователя, используемой для входа в систему. Таким образом, ваше первое утверждение неверно. Кто бы вы ни вошли в систему, ваш ключ Run будет находиться в этой ветке реестра:
HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run
Дополнительные пользователи будут проживать в HKEY_USERS. Если вы отредактировали указанный выше ключ, войдя в систему как администратор, это также отредактирует соответствующий ключ в HKEY_USERS (поскольку HKCU является просто прокси для одной из записей в HKEY_USERS).
Если вы поместите свой скрипт test.cmd в папку HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\CurrentVersion\Run, он будет работать независимо от того, какой пользователь вошел в систему. Теперь ваш оригинальный вопрос в заголовке говорит, что вы хотите запустить команду "при загрузке Windows". Вы действительно имеете в виду во время процесса загрузки (то есть, когда логотип Windows отображается на черном экране), или вы имеете в виду во время процесса входа в систему?