Это ключ автозапуска реестра 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 ответ1

0

Я считаю, что ваш первоначальный вопрос / сообщение неверно. Все в соответствии с 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 отображается на черном экране), или вы имеете в виду во время процесса входа в систему ?

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