9

Я использую 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 с указанным пользователем, он работает как положено. Но мне нужно указать пароль в командной строке.

4 ответа4

8

В Windows Vista и более поздних версиях, если UAC включен, процесс, запускаемый psexec - даже при запуске из учетной записи администратора - должен иметь свой токен повышенного уровня , чтобы получить полные права. Это можно сделать, передав атрибут -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.
3

Мне потребовались часы, чтобы найти рабочий путь к PsExec между двумя компьютерами Windows 7 с пользователем без прав администратора, PsExec ... Отключение UAC (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
0

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

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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .