Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Як запустити програму від імені системи.

В операційних системах 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 можна запустити будь-який додаток з правами системи.



З PsExec все просто і зрозуміло, цей спосіб використовується з незапам'ятних часів і до сих пір актуальне. Але, виключно заради різноманітності, розглянемо ще один спосіб.

PowerRun

PowerRun - графічна утиліта, спеціально призначена для запуску програм з підвищеними правами (TrustedInstaller/Nt Authority/System).Установка їй не потрібно, достатньо скопіювати утиліту в локальну папку і запустити. При бажанні можна вибрати російськомовний інтерфейс, хоча на мій погляд в ньому немає необхідності. Інтерфейс у PowerRun простий, інтуїтивно зрозумілий, всі основні дії винесені у вигляді кнопок на центральну панель.

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



Якщо додаток буде запускатися регулярно, то для нього краще створити окремий запис. У записі можна вказати параметри запуску, такі як шлях, ключі і команди, а також робочу директорію. Вікно запуску можна зробити прихованим, мінімізувати або навпаки, максимально розгорнути.Для управління записами в панелі управління є три кнопки - створення, видалення і редагування.

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



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



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



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



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

PowerRun.exe/K whoami



І ще один цікавий момент, про який треба знати при роботі з 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.



Як бачите , запустити будь-яку програму з правами системи не просто, а дуже просто.Але не варто лізти у нутрощі операційної системи без крайньої необхідності, оскільки в результаті такого втручання є шанс її поламати. Ну і звичайно, бажано робити резервні копії. Про всяк випадок