Windows 7 планує розпочати процес з привілеями адміністратора для стандартного користувача


1

На моїй персональній машині Win7 мій обліковий запис користувача є стандартним обліковим записом, а також є обліковий запис адміністратора, який явно контролюю. Одна програма, яку я запускаю з Windows, потребує прав адміністратора для правильної роботи. Це бічна панель AIDA64, якщо хтось цікавиться.

Я шукав на цьому сайті, в Інтернеті, і форуми AIDA64 підтримували ідеї про те, як зробити роботу, без хороших результатів. Я запланував завдання, щоб він запускався під обліковим записом адміністратора, але в цьому випадку він навіть не відображається як запущений для стандартного користувача (хоча, якщо стандартний користувач запускає його вручну "як адміністратор", він працює нормально). Крім того, я можу запланувати його для стандартного користувача з "найвищими привілеями", які я бачив у десятках разів, але це не працює, оскільки він використовує лише найвищі доступні привілеї користувача, а не адміністратора, навіть якщо адміністратор один планування завдання!

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

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

Відповіді:


1

Існує декілька способів запуску програми

  1. Відкрийте CMD як адміністратор і перейдіть до каталогу, де зберігається програма, і спробуйте запустити програму через оболонку cmd

  2. Знову відкрийте CMD оболонку як адміністратор і використовуйте PsExec для запуску програми за допомогою іншого облікового запису адміністратора і заглянути в процесор explorer, якщо додаток запущено в іншому сеансі (я припускаю, що ви створите іншого користувача адміністратора на вашому комп'ютері)

  3. Спробуйте запустити програму з використанням підвищених маркерів PsExec -h Опція від адміністратора cmd оболонки, якщо він працює, то додаток також запускається з облікового запису адміністратора за замовчуванням вашої машини, якщо вона включена в compmgmt.msc

  4. використовуючи ту саму підвищену оболонку cmd, спробуйте запустити програму в сесії 0, якщо вона працює Psexec -s -i 0 додаток і переглядати дослідник процесів, якщо він фактично запущений

  5. Ви також можете спробувати запустити програму у поточній сесії під системним обліковим записом і перевірити, чи працює вона

  6. Ви також можете використовувати psexec для запуску програми під привілеями користувача з оболонки адміністратора за допомогою psexec -u пароль користувача -p і подивитися, чи запущено

Також спробуйте за допомогою параметра taskchedular для запуску програми і, нарешті, ви можете використовувати процесор explorer & gt; виберіть & gt; перегляньте командний рядок, щоб побачити, яку саме команду використовує програма для запуску, коли вона запущена під адміністратором, як ви сказали, тоді ви можете використовувати ту саму команду, щоб запустити програму, за допомогою якої ви також можете налагодити, чому програма не запускається за допомогою завдання розкладки та навчання з процесора explorer


1

The at /interactive Метод здається оптимальним, але дозволяє лише планувати завдання в певний час. Якщо вам потрібні деякі складні критерії запуску або виконуєте завдання під час входу користувача, це не зробить це. Найкраще рішення, яке мені вдалося досягти, це:

  • завантажити PsTools: https://technet.microsoft.com/en-us/sysinternals/psexec.aspx , розпакуйте, додайте до каталогу% PATH%,
  • створити пакетний файл:

    @echo off
    for /f "tokens=3 delims= " %%a in ('qwinsta ^| find /i "active"') do ( set SID=%%a )
    PsExec.exe -i %SID% -h %*
    

    Можливо, вам доведеться замінити "active" на ваш локалізований термін, якщо у вас є локалізована версія Windows (наприклад, у польській Windows це 'aktywna'). Просто перевірте його qwinsta. Цей пакетний файл визначає SessionID активного сеансу і запускає команду з поточними обліковими даними користувача, але в сесії виявленого SessionID.

  • запустіть планувальник завдань як адміністратор і створіть завдання. Встановіть, щоб він працював як адміністратор з підвищеними привілеями, незалежно від того, в який користувач входить. Встановіть потрібні критерії для виконання завдання. Встановіть дію, щоб запустити пакетний файл, і встановіть рядок параметрів на:

    -d -u admin_user -p password yourApp.exe
    

    Якщо ваша програма є CLI, пропустіть -d. Користувач і пароль облікового запису, який використовується для виконання завдання, повинні бути надані, в іншому випадку додатки GUI не будуть працювати належним чином (я не знаю чому; можливо, програми CLI працюватимуть нормально, я не перевіряв). Замість того, щоб надавати користувача та пароль, ви можете дати -s перемикач, але тоді ваша програма буде працювати з локальним системним обліковим записом.

Ефект запуску завдання подібний до того, як клацнути правою кнопкою миші на виконуваному файлі і вибрати 'run as administrator', але без виведення UAC. Таким чином, як тільки ви створили пакетний файл, ви можете легко створити наступні завдання, і пакет змусить їх запустити в активній сесії. Безпека, ймовірно, не ідеальна таким чином, якщо вашим користувачам не довіряють, але принаймні ваш пароль адміністратора не зберігається в прозорому тексті всередині пакетного файлу, а також сам завдання не видно звичайним користувачам. Щоб покращити безпеку, можна зробити як пакетний файл, так і цільовий виконуваний файл недоступними для користувачів, відмінних від адміністратора. І ви повинні переконатися, що ніхто не має логіна, що містить "активний" або будь-яке слово, використане в його локальній версії Windoze, - або вам доведеться перезавантажити пакет і додати інше for, що ускладнює його (або використовує PowerShell або UnxUtils).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.