Чтобы запустить процесс с пониженными правами в среде Windows, когда его родительский процесс (например, ZD* или PM) работает от имени администратора, можно воспользоваться следующими подходами:
Использование команды runas:
Команда runas позволяет запускать программы от имени другого пользователя. Однако в класическом варианте она требует ввода пароля. Вы можете создать скрипт или использовать планировщик задач для запуска команды от текущего пользователя, но это также может потребовать некоторых настроек.
Скрипты PowerShell:
Вы можете написать PowerShell-скрипт, который запускает программу с нужными правами.
powershell
Start-Process cmd.exe -Credential (Get-Credential)
В этом случае вам будет предложено ввести учетные данные. Если вы хотите избежать ввода пароля, это не самый подходящий вариант.
Смена контекста с помощью PsExec:
Утилита PsExec из пакета Sysinternals позволяет запускать процессы с измененными правами. Вы можете передать текущего пользователя и его учетные данные без необходимости ввода пароля.
Пример команды:
bash
psexec -u имя_пользователя -p пароль cmd.exe
Хотя этот метод подразумевает ввод пароля, если использовать файл учетных данных, то можно обойтись без ввода пароля вручную.
Создание задачи в планировщике:
Вы можете создать задачу в планировщике задач Windows, настроив её на исполнение от имени текущего пользователя и вызвать её с помощью командной строки:
powershell
schtasks /run /tn "Имя_задачи"
Использование утилит для снижения прав:
Некоторые утилиты из интернет-репозиториев могут помочь в снижении привилегий процессов. Однако их использование может быть небезопасным, и следует выбирать только проверенные инструменты.
Для доступа к процессам в режиме низких привилегий без ввода пароля под администрацией, к сожалению, могут быть сложности, так как это может быть связано с политиками безопасности Windows. Всегда следует быть осторожным при выполнении действий, которые могут снизить уровень безопасности системы.