10

Как я могу получить командную строку от имени пользователя SYSTEM в Windows 7?

Контекст: я тестирую сценарий запуска компьютера, и мне нужно выяснить поведение команды при запуске от имени SYSTEM, а не моей учетной записи пользователя.

Я видел способы сделать это с помощью at и psexec , но эти методы работают только в Windows XP или Windows Vista.

Я использую Windows 7 Pro SP1.

4 ответа4

9

Используйте PsExec из пакета Microsoft Systinternals. PsExec должен запускаться из командной строки администратора. Используйте ключи -i -s для запуска вашего скрипта / командной строки.

Введите описание изображения здесь

3

Об этом спрашивали на переполнении стека. Принятый ответ использует PsExec (из набора Systinternals ), как предложил Скотт.

Другое решение заключается в создании службы, которая запускается под системной учетной записью для запуска интерпретатора команд. Вы можете сделать это вручную или использовать программу, которая создает сервисы, запускает приглашение и автоматически удаляет сервис. Я только попробовал это, и это работало удовольствие:

Снимок экрана диспетчера задач с CMD, работающим в качестве системы

1

Я был бы очень осторожен, делая это. SYSTEM - это учетная запись администратора, но гораздо, гораздо более опасная, поскольку она имеет более высокий уровень доступа.

Обычно ваша СИСТЕМА - это службы учетных записей, а не интерактивный профиль. Хотя есть способы сделать это.

Прочитав это, я думаю, у нас есть хороший подход:

  1. Проверьте имя учетной записи, в которую вы вошли (Нажмите «Пуск». Вы
    увидит имя вашей учетной записи.)
  2. Запустите командную строку. (Start | Run | cmd | [Enter])
    в командной строке создайте расписание для запуска cmd.exe.
    Чтобы создать расписание, введите следующую строку и нажмите Enter.
    в 10:41 / интерактивный «cmd.exe»
    это создаст расписание для запуска cmd.exe в 10:41.
    (Поскольку вы тестируете, проверьте время в вашей системе и попробуйте добавить две или три минуты.)Измените это время в соответствии с вашим местным временем
    Подсказка: вы можете проверить, размещено ли расписание, набрав « at »
    и нажмите ввод после вышеуказанного шага.
  3. Подождите, пока вы установите время для расписания.
    cmd.exe будет запущен в указанное время.
  4. После запуска cmd.exe в назначенное время нажмите [CTRL] + [ALT] + [DEL] и запустите диспетчер задач.
    Выберите вкладку «Процесс», выберите файл explorer.exe в списке процессов и нажмите кнопку « Завершить процесс ».
    Вы получите диалог подтверждения. Нажмите «Да», чтобы завершить процесс.
  5. Закройте диспетчер задач, нажав кнопку закрытия (X).
    Закройте первое окно cmd (будьте осторожны, чтобы закрыть первое, а не второе.)
  6. Теперь у вас есть только второе окно командной строки и пустой рабочий стол.
    В командной строке введите следующую строку и нажмите «Enter»
    CD ..
  7. В командной строке введите следующую строку и нажмите «Enter»
    explorer.exe
    Если вы делаете это впервые, Windows создает необходимые
    компоненты для доступа к системе (рабочий стол, меню «Пуск»,
    Мой документ)
    когда он закончится, у вас будет новый рабочий стол.
  8. Закройте окно командной строки. Нажмите «Пуск» и проверьте свое имя пользователя.
    Это изменено на Систему.
    Теперь вы сверхмощный пользователь. Будьте осторожны, чтобы не повредить ваш компьютер и не удалять и не изменять системные файлы, если вы не знаете, что делаете.

Другой вариант - запускать ваш скрипт как сервис.

1

Есть немного более хакерский подход к этому, который включает в себя в основном subbing cmd.exe вместо Utilman.exe в \Windows \System32 (который, очевидно, потребует резервного копирования). Вы должны будете сделать это за пределами текущей запущенной Windows заранее (например, в Linux или с установочного / восстановительного компакт-диска). Вот пример сценария для использования (через Windows):

cd "%SystemRoot%\System32"
ren Utilman.exe Utilman.exe.bak
robocopy cmd.exe Utilman.exe /copyall

После того, как вы это сделаете, загрузитесь в обычную Windows и нажмите Windows Key+U, и вместо того, чтобы вызвать набор утилит для обеспечения доступности и т.д., Он вызовет командную строку уровня системы со всеми доступными инструментами вашей системы. ,

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