Как запустить программу от имени системы
Перейти к содержимому

Как запустить программу от имени системы

  • автор:

Система запуска от имени

Тесты, выполняемые от имени «Локальная система», не должны создавать пользовательские интерфейсы. Если тесты необходимо создать или взаимодействовать с пользовательским интерфейсом, необходимо переместить код, связанный с пользовательским интерфейсом, в отдельные исполняемые файлы, которые запускаются на рабочем столе из тестов с помощью функции CreateProcessAsUser.

Указание запуска от имени в командной строке

te unittests\* /runas:system 

Маркировка тестов с помощью запуска от имени

Метаданные теста можно использовать для указания типа запуска сборки, класса или метода теста.

Значения запуска от имени, указанные в метаданных, переопределяют значения запуска от имени, указанные в командной строке. Например, тест, помеченный метаданными теста runas:system, по-прежнему будет выполняться как Локальная система, даже если в командной строке указан параметр /runas:elevated .

Пример (машинный код)

class MyTests < TEST_CLASS(MyTests); BEGIN_TEST_METHOD(SystemTest) TEST_METHOD_PROPERTY(L"RunAs", L"System") END_TEST_METHOD() >; 

Запуск командной строки/ программы от имени SYSTEM в Windows

date

26.08.2020

user

itpro

directory

Windows 10, Windows Server 2012 R2, Windows Server 2016

comments

комментариев 9

В Windows для выполнения некоторых действий недостаточно иметь права администратора. Например, вы не сможете заменить или удалить системные файлы, некоторые ветки реестра, остановить системные службы или выполнить другие потенциально небезопасные действия, которые могут нарушить стабильность системы. Системному администратору в таких случая приходится назначать себе владельцем таких объектов или выполнять действия от имени системы. В этой статье мы рассмотрим, как запустить программу или командную строку в Windows от имени привилегированного аккаунта SYSTEM (Local System).

Дисклаймер. Внесение изменение в образ Windows от имени системы – это нештатная операция. Имейте в виду, что некорректные действия с правами NT AUTHORITY\SYSTEM могут сломать вашу Windows. На практике запуск процессов от имени системы используется довольно редко, т.к. в большинстве случаев можно решить проблему более штатными методами: runas, запуск программ без прав админа и подавлением запроса UAC, назначение администратора владельцем файлов/веток реестра, отключение UAC для определенной программы, назначением прав пользователям на службу.

системные службы windows запущены от имени localsystem

Встроенная учетная запись SYSTEM используется диспетчером управления службами SCM (Service Control Manager) для запуска и управления системными службами. Из-под учетной записи System (может называться NT AUTHORITY\SYSTEM, Local System или Computer\LocalSystem)запускается большинство системных служб и процессов (в том числе ядро NT Kernel). Откройте оснастку управления службами services.msc и обратите внимание на службы, у который в столбце LogOnAs указано Local System. Эти службы запушены из-под учетной записи SYSTEM.

Запуск командной строки от Local System в старых версиях Windows (до Vista)

В снятых с поддержки Windows XP и Windows Server 2003 была интересная возможность, позволяющая запустить программу или же интерактивную командную строку (cmd) с правами системы через планировщик. Достаточно войти с правами администратора, открыть командную строку и набрать в ней:

at 12:23 /interactive cmd.exe

, где 12:23 – текущее время + одна минута (в 24 часовом формате).

После наступления указанного времени перед вами открывается окно командной строки, запущенное с правами Local System. Если вы выполнили эту команду в терминальном (rdp) сессии Windows Server 2003/XP, имейте в виду, что командная строка с правами System отображается только в консольной сессии (как подключиться к rdp консоли).

Запуск пограмм от имени системы в Windows

В Windows 10 запуск интерактивной строки с помощью команды at не поддерживается. Вместо него рекомендуется использовать schtasks.exe .

Команда AT признана нерекомендуемой. Используйте вместо нее schtasks.exe. Внимание! В соответствии с повышенной безопасностью данное задание будет выполняться в запланированное время, но не интерактивно. Если требуется интерактивное задание, воспользуйтесь служебной программой schtasks.exe (для получения дополнительных сведений введите schtasks /?). Такой запрос не поддерживается.

windows 10 команда at устарела и не поддерживается

Запуск программ от имени системы с помощью PSExec в Windows 10

Начиная с Windows 7 трюк с запуском интерактивной командной строки от имени системы через планировщик не работает. Для запуска команд от имени NT Authority\ System можно использовать утилиту PSExec.exe от Sysinternals.

Утилиту PSExec.exe можно скачать на сайте Microsoft https://docs.microsoft.com/en-us/sysinternals/downloads/psexec. Утилита PSExec знакома любому администратору и в первую очередь предназначена для удаленного управления Windows, однако в ней есть полезная возможность запуска процессов от имени System. Некоторые антивирусы могут опознавать PSExec.exe как потенциально небезопасную программу (с помощью psexec кстати распространялся печально известный вирус notpetya),

Утилита PSExec не требует установки. Откройте командную строку с правами администратора (“Run as administrator”) перейдите в каталог, в котором находится исполняемый файл PSexec.exe и наберите:

psexec -i -s cmd.exe

параметр -i запускает приложение в интерактивном режиме (пользователь может взаимодействовать с программой на рабочем столе, если это параметр не указывать, процесс запускается в консольной сесии), —s означает что командную строку нужно запустить из-под системы

При первом запуске PsExec попросит вас принять лицензионное соглашение.

запуск интерактивной cmd.exe из psexec с правами system

После выполнения команды появится новое окно с командной строкой, запущенной из-под учетной записи NT Authority\System. Проверьте это, выполнив команду:

psexec whoami проверка что командная строка запущена от имени NT Authority\System

Таким образом вы запустить любую программу, команду или скрипт с правами системы. Достаточно в параметре утилиты PsExec изменить cmd.exe на имя исполняемого файла нужной программы.

В открывшемся окне командной строки вы можете выполнять любые команды в контексте SYSTEM. Теперь вы сможете изменить, переименовать или удалить системные файлы/ветки реестра, владельцем которых является TrustedInstaller или SYSTEM. Все программы или процессы, которые вы запустите их этого окна также будут запущены с повышенными привилегиями LocalSystem. Например, можно остановить системную службу, или закрыть дескриптор занятого системой файла.

С помощью PSExec вы можете получить интерактивную командную с правами NT AUTORITY\СИСТЕМА с удаленного компьютера. Для этого используется команда:

psexec -s \\msk-PCBuh2 cmd.exe

При появлении ошибки couldn’t install PSEXESVC service , убедитесь, что:

    командная строка запущена от имени администратора;

служба PSEXESVC уже запущена

  • проверьте, возможно служба PSEXESVC уже запущена.
  • Есть еще ряд сторонних утилит для запуска программ от имени System (AdvancedRun , RunAsSystem, PowerRun), но я не вижу смысла использовать их смысла. Т.к. во-первых это сторонние утилиты, и вы не можете гарантировать что в их коде нет вредоносных закладок, и во-вторых официальная утилита PsExec от Microsoft отлично справляется с задачей.

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

    Как запустить программу от имени системы

    В операционных системах Windows прав локального администратора хватает для выполнения практически любых действий. Но иногда бывают ситуации, когда админских прав все же недостаточно.

    Для примера откроем редактор реестра и попробуем в разделе HKEY_LOCAL_MACHINE\SECURITY создать подраздел. Как видите, у нас ничего не получилось, нет доступа.

    ошибка при доступе к реестру

    Дело в том, что доступ к этим разделам имеет только система, для всех остальных пользователей они закрыты. И единственный способ попасть в них — это запустить редактор реестра от имени системы.

    Учетная запись системы — это встроенная учетная запись SYSTEM, которую диспетчер управления службами (Service Control Manager, SCM) использует для управления службами. Эта учетная запись предоставляет максимально широкие привилегии в локальной системе и имеет доступ к большинству системных объектов. Соответственно любой процесс, выполняемый в контексте учетной записи SYSTEM, наследует все ее права и доступы.

    Примечание. Насчет названия учетной записи есть некоторые разночтения. Так в зависимости от того, где она используется, ее могут называть SYSTEM, NT AUTHORITY\SYSTEM, LocalSystem или ComputerName\LocalSystem.

    Для запуска от имени системы есть много различных способов, я расскажу о двух наиболее простых. Итак, способ первый.

    PsExec

    Утилита командной строки PsExec входит в состав пакета PsTools от Sysinternals. Изначально PsExec предназначена для удаленного управления, но ее можно использовать и для запуска процессов с повышенными привилегиями. Кстати, по этой причине некоторые антивирусы опознают PsExec как ″трояна″.

    PsExec не требует установки, достаточно просто скопировать ее в локальную папку и запустить из консоли cmd или powershell. Для удобства использования можно поместить исполняемый файл в системный раздел (C:\Windows\system32). Для примера откроем новое окно командной строки вот такой командой:

    psexec.exe -i -s cmd.exe

    Ключ -s производит запуск от имени системы, а ключ -i открывает окно в интерактивном режиме. Теперь выполним в новом окне команду whoami и убедимся, что оно запущено от имени пользователя nt authority\system. Таким образом с помощью PsExec можно запустить любое приложение с правами системы.

    запуск cmd от имени системы с помощью psexec

    С PsExec все просто и понятно, этот способ используется с незапамятных времен и до сих пор актуален. Но, исключительно ради разнообразия, рассмотрим еще один способ.

    PowerRun

    PowerRun — графическая утилита, специально предназначенная для запуска программ с повышенными правами (TrustedInstaller/Nt Authority/System). Установка ей не требуется, достаточно скопировать утилиту в локальную папку и запустить. При желании можно выбрать русскоязычный интерфейс, хотя на мой взгляд в нем нет необходимости. Интерфейс у PowerRun простой, интуитивно понятный, все основные действия вынесены в виде кнопок на центральную панель.

    Для запуска приложений есть несколько вариантов запуска, на выбор. Для редактора реестра и командной строки, как для наиболее часто используемых приложений, специально выделены кнопки на панели управления. Для примера нажимаем на кнопку и консоль открывается от имени системы.

    запуск cmd от имени системы из PowerRun

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

    Для примера создадим запись для запуска командной строки. Окно должно открываться в нормальном режиме, в качестве рабочей директории задан профиль текущего пользователя (%userprofile%), после запуска выполняется команда whoami.

    создание новой записи в PowerRun

    Запустить запись можно либо кнопкой, либо из контекстного меню, либо просто двойным кликом.

    запуск новой записи в PowerRun

    Дополнительно можно на базе созданной записи создать bat- или vbs-скрипт. Это позволит максимально упростить и ускорить процедуру запуска программы с системными правами.

    создание скрипта для запуска от имени системы в PowerRun

    Особо продвинутые пользователи могут запускать PowerRun напрямую из командной строки. Синтаксис и примеры команд можно посмотреть в справке, которая открывается командой PowerRun.exe с ключом /?.

    справка командной строки PowerRun

    Для примера запустим все ту же консоль и выполним в ней команду whoami:

    PowerRun.exe /K whoami

    запуск PowerRun из командной строки

    И еще один интересный момент, о котором надо знать при работе с PowerRun. По умолчанию PowerRun умеет запускать программы с правами пользователей Nt Authority/System и TrustedInstaller. С первым более менее понятно, а вот о втором стоит рассказать чуть подробнее.

    Начиная с Windows Vista в операционные системы Windows внедрена технология WRP (windows resource protection), предназначенная для защиты файлов и ключей реестра. WRP при помощи исполняемого модуля trustedinstaller.exe ограничивает доступ к критически важным системным ресурсам для всех пользователей, включая и администраторов. Правом доступа к этим ресурсам обладает только системный пользователь TrustedInstaller, который является их владельцем.

    Так вот, PowerRun можно запускать как с правами TrustedInstaller, так и без них. Для переключения нужно открыть конфигурационный файл PowerRun.ini и изменить значение параметра TrustedInstaller. Значение 1 означает наличие прав TrustedInstaller, а 0 — их отсутствие. Также из командной строки для запуска только с правами системы можно указать ключ /SYS.

    конфигурация PowerRun

    Как видите, запустить любую программу с правами системы не просто, а очень просто. Но не стоит лезть во внутренности операционной системы без крайней необходимости, поскольку в результате подобного вмешательства есть шанс ее поломать. Ну и конечно, желательно делать резервные копии. На всякий случай ��

    Eugeneer’s Media Cloud World

    Creative IT Practitioner’s blog — take your thought and give it idea acceleration! In my focus: networks, security, virtualization, multimedia, AI.

    Главная

    А А Saturday 16 January 2016

    Запуск программ от имени SYSTEM в MS Windows.

    Всем привет.

    Периодически у меня возникает необходимость запуска программ от имени системы (SYSTEM или Local System). Обычно это необходимо для целей тестирования или отладки работы различных программ и скриптов, которые в дальнейшем будут запускаться планировщиком. Тестировать работоспособность подобных программ не всегда правильно из-под учетной записи Администратора.

    Точно такая же необходимость возникает когда некий процесс работающий от имени SYSTEM подгружает саму систему и другие задачи не могут из-за него работать. Недавний случай с серверным антивирусом который ночью пошел на апдейт, но так и не смог обновиться. В результате зависшый процесс занял весь процессорный ресурс под 99% и никак не давался мне для завершения по taskkill. Потому как выполнялся от SYSTEM. Пришлось воспользоваться методом описанным ниже.

    Запуск программ от имени SYSTEM в Windows XP.

    Как же можно запустить программу или же интерактивную командную строку (cmd) с правами администратора? В Windows XP или Windows Server 2003 это можно сделать очень просто. Достаточно было зайти в систему с правами администратора, открыть командную строку и набрать в ней:

    at 12:13 /interactive cmd.exe
    , где12:13 – ваше текущее время + одна минута (в 24 часовом формате).

    Помните что в для этого должна быть запущена служба «Планировщик заданий». После наступления указанного времени перед вами появится черное окно командной строки, запущенное с правами Local System. Стоит отметить, что если вы выполняете этот трюк через терминальное подключение к Windows Server 2003, то окно командной строки запуститься в консольной сессии.

    Запуск программ от имени SYSTEM в Windows 7.

    В Windows 7 ситуация несколько изменилась и показанный выше трюк не работает. Это хорошо с точки зрения безопасности, но крайне неудобно мне как администратору. К счастью, у меня получилось найти альтернативный вариант запуска интерактивной командной строки с правами системы в Windows 7. Трюк заключается в использовании знакомой нам утилиты от SysInternals под названием PSexec.exe. Скачайте ее на свой компьютер.

    Откройте командную строку с правами администратора (“Run as administrator”) перейдите в каталог, в котором находится исполняемый файл PSexec.exe и наберите:

    psexec -i -s cmd.exe
    параметр -i означает интерактивный запуск, -s запуск из-под системы

    После выполнения команды появится новое окно с командной строкой, запущенной из под учетной записи NT Authority\System.

    Точно также можно запустить любую программу или скрипт с правами системы, достаточно в параметре утилиты Psexec изменить cmd.exe на имя вашей программы.

    Оригинал материала http://winitpro.ru/index.php/2011/12/26/zapusk-cmd-ot-system-v-windows-7/
    Posted by Nyukers в 05:00

    2 comments:

    Anonymous said.

    Буквально вчера пришлось выполнять такой трюк с 107-м патчем медка. Разрабы сильно перевозбудились на 8-е марта, и забыли затушить один процесс.))

    Anonymous said.

    1)В ком строке пишем at 15:26 /interactive cmd.exe
    где 15:26 на одну минуту больше текущего времени
    2)получаем окно от юзера SYSTEM в котором пишем taskmgr.
    Все! Имеем диспетчер задач которым можно убить любой процесс!

    Post a Comment

    А что вы думаете по этому поводу?

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *