Это окнаключ автозапуска реестрадля менятекущий(группа администраторов) пользователь:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
и это для"NT AUTHORITY\СИСТЕМА"пользователь:
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run
Это простой скрипт "Test.cmd":
echo "Hello" >> C:\Test.txt
Если я добавлю это ктекущий пользователь Run
ключ, он работает, но если я добавлю его вСИСТЕМНЫЙ пользователь, это не так.
Что здесь происходит, и как я могудобавить .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 отображается на черном экране) или вы имеете в виду во времявход в системупроцесс?