Командная строка от имени пользователя SYSTEM (Windows 7)

10

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

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

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

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

stephenwade
источник
1
SYSTEM - это обычно пользовательские сервисы, а не интерактивная учетная запись ...
Austin T French
1
Может быть, я что-то неправильно понимаю. Вот цель: у меня есть сценарий, который я планирую развернуть в нашей организации через групповую политику. Хотя скрипт должен работать, это не так.
Стивенвейд
1
Скрипт будет работать как скрипт запуска компьютера, который, я думаю, работает как SYSTEM; поэтому я хочу командную строку как SYSTEM для тестирования моего сценария. Правильно ли я запускаю сценарии запуска как SYSTEM? Если да, то как лучше всего протестировать мой сценарий?
Стивенвейд
1
Скрипт запуска компьютера в групповой политике.
Стивенвейд
1
I've seen ways to do this with at and psexec, but those methods only appear to work on Windows XP or Windows 7. I'm using Windows 7 Pro SP1. Гм ... ఠ_ ಠ
Synetech

Ответы:

3

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

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

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

Synetech
источник
9

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

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

Скотт Чемберлен
источник
1
Даже в командной строке администратора я получаю сообщение " Access is denied."
stephenwade
@stephenwade Как вы получаете командную строку администратора, вы щелкаете правой кнопкой мыши и выполняете «Запуск от имени администратора»? На плитке написано «Администратор: Командная строка», когда у вас открыто окно перед запуском PsExec? Также вы пытаетесь указать его на сетевой файл для запуска, токен для подключения к удаленному общему ресурсу теряется в процессе повышения прав.
Скотт Чемберлен
Да, я щелкнул правой кнопкой мыши по командной строке в меню «Пуск» и выбрал «Запуск от имени администратора».
Стивенвейд
1
Я запускаю psexec из сетевой папки, связанной с диском H :. Может ли это быть проблемой?
Стивенвейд
1
@stephenwade да, когда вы повышаете уровень, вы теряете свои сетевые диски (потому что они привязаны к учетной записи пользователя, а вы меняете учетные записи пользователей), копируйте локально, и это будет работать.
Скотт Чемберлен
1

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

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

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

  1. Проверьте имя учетной записи, в которую вы вошли (Нажмите «Пуск». Вы
    увидите имя учетной записи, в которую вы вошли.)
  2. Запустите командную строку. (Start | Run | cmd | [Enter])
    в командной строке создайте расписание для запуска cmd.exe.
    Чтобы создать расписание, введите следующую строку и нажмите ввод.
    в 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. Закройте окно командной строки. Нажмите Пуск и проверьте свое имя пользователя.
    Это изменено на Систему.
    Теперь вы сверхмощный пользователь. Будьте осторожны, чтобы не повредить ваш компьютер и не удалять и не изменять системные файлы, если вы не знаете, что делаете.

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

Остин Т Френч
источник
2
atне работает в Windows 7.
Стивенвейд
1
atработает на моем компьютере с Windows 7. Что не работает для вас?
uSlackr
3
Вот еще один (более быстрый?) Способ прервать процесс проводника в Windows 7: нажмите «Пуск». Переместите мышь в правую часть меню (где «Выполнить» и «Выйти из системы»). (Ctrl) + (Shift) + (щелчок правой кнопкой мыши); нажмите на «Exit Explorer».
Скотт
2
C: \ Windows \ system32> в 23:56 / interactive «cmd.exe» Предупреждение. Из-за улучшений безопасности эта задача будет выполняться в ожидаемое время, но не в интерактивном режиме. Используйте утилиту schtasks.exe, если требуется интерактивное задание (подробности в «schtasks /?»). Добавлена ​​новая работа с идентификатором вакансии = 1 blogs.technet.com/b/askds/archive/2008/10/22/…
Dagelf
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, и вместо того, чтобы вызвать набор утилит для обеспечения доступности и т. Д., Он вызовет командную строку системного уровня со всеми доступными инструментами вашей системы. ,

Изиа луга
источник
Также возможно сделать это в Windows, без дисков, даже без перезагрузки. Просто зайдите System32, откройте свойства UtilMan.exe, получите все привилегии и права собственности и сделайте эти шаги после него.
Jet
Это удобно, если вы не можете войти в систему и получить
Vitas