PsExec Доступ запрещен

11

Я использую psexec.exeдля запуска программ в другом контексте безопасности. Однако программы запускаются, но, похоже, они не работают в указанном контексте безопасности.

В минимальной форме:

psexec -u wsadmin -p password cmd

Запускает новое окно cmd, если я наберу в этом окне whoami

C:\Windows\system32>whoami
win-k1r7g38nlkt\wsadmin

C:\Windows\system32>net localgroup administrators
Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Administrator
wsadmin
The command completed successfully.

Как видите, я определенно другой пользователь. И я могу подтвердить, что этот пользователь является членом группы «Администраторы»

C:\Windows\system32>mkdir test
Access is denied.

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

Туий
источник

Ответы:

10

В Windows Vista и более поздних версиях, если включен psexecконтроль учетных записей , процесс, запускаемый - даже при запуске из учетной записи администратора - должен иметь свой токен elevate, чтобы получить полные права. Это можно сделать, передав -hатрибут в psexecкомандной строке. Итак, вы изменили бы свою команду на:

psexec -h -u wsadmin -p password cmd

Для получения дополнительной информации запустите psexec /?:

    -h    If the target system is Vista or higher, has the process
          run with the account's elevated token, if available.
nhinkle
источник
9
К сожалению, это дает мне «Не удалось установить, что доступ к службе PSExec запрещен»
Tuim
Вы также запускаете начальную команду из командной строки с повышенными правами или используете ее в качестве локального запуска?
nhinkle
Исходная команда запускает «пользовательский» контекст безопасности. Я не могу использовать run-as по конкретным причинам.
Туим
1
Используйте «Повышенная командная строка» или «Повышенная командная строка PowerShell» через «Пуск»> «PowerShell»> щелкните правой кнопкой мыши «Windows PowerShell»> выберите «Запуск от имени администратора» и запустите команду psexec, включая -hпараметр.
Underverse
@ Underverse, возможно ли использовать psexec от пользователя CMD, а не от администратора PS? Я хочу использовать psexec именно для перехода CMD в контекст администратора :)
Suncatcher
5

У меня ушло часа , чтобы найти рабочий путь к PsExecмежду двумя ОС Windows 7 компьютеров с не-Admin пользователь , начиная PsExec... Отключение контроля учетных записей ( EnableLUA=0, ConsentPromptBehaviorAdmin=0, LocalAccountTokenFilterPolicy=1) не работают, выключая Брандмауэры не работа ...

Здесь я нашел рабочий способ - спасибо JelmerS: (Информация от PSexec не подключается к машине с использованием предоставленных имени пользователя и пароля )

Это потому, что psexecвсе еще пытается получить доступ к ADMIN$общему ресурсу с вашими локальными учетными данными, прежде чем выполнять команду как другой пользователь. В соответствии с этим потоком вы можете кэшировать учетные данные перед выполнением psexec:

cmdkey.exe /add:MACHINE_NAME_HERE /user:MACHINE_NAME_HERE\Administrator /pass:PASSWORD_HERE 
psexec.exe \\MACHINE_NAME_HERE -i notepad
cmdkey.exe /delete:MACHINE_NAME_HERE
Питер Фельдхаммер
источник
Примечание. Если вы не хотите вводить пароль в историю командной строки, вы можете просто использовать / pass без пароля, и вы получите приглашение ввести его.
Джо Кодер
1

Я нашел решение:

Оказывается, когда у вас включен UAC, psexec работает не так, как предполагалось.
Всякий раз, когда HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUAустановлен 0psexec, работает как положено.

Туий
источник
4
Другой способ избежать изменения реестра - просто добавить -hфлаг в psexecкоманду. Это говорит о том, что нужно запустить команду с маркером с повышенными правами, что эквивалентно запуску процесса «как администратор» из контекстного меню.
nhinkle
5
Установка EnableLUAдля 0отключает Admin Approval Mode, который является в основном ядром ОАК. В результате UAC будет отключен. Источник .
Vlastimil Ovčáčík
Для меня флаг -h не работал, и отключение UAC
доставляло
0

Вот что сработало для меня, оно не полностью избавляется от UAC, а отключает его для администраторов

Конфигурация компьютера \ Конфигурация Windows \ Параметры безопасности \ Локальные политики \ Параметры безопасности \ Контроль учетных записей пользователей: запускать всех администраторов в режиме одобрения администратором - отключено

cristobalhernandez
источник
Что не очень хорошая идея. Кроме того, как это улучшение по сравнению с другими доступными решениями?
Сет