1

Я хочу начать сеанс PowerShell ISE как пользователь домена. Если я введу:
runas.exe /netonly /user:domain.local\username "powershell ise"

Мне предлагают пароль, и среда ISE запускается. Однако запуск whoami дает следующий вывод:
win-machine\user

Это локальный компьютер и пользователь, на котором я вошел как.

Будучи знаком с использованием Linux и sudo , я намерен выполнить эквивалентное изменение пользователя и выполнить запросы Active Directory с привилегиями domain.local\username через оболочку. Как мне этого добиться?

РЕДАКТИРОВАТЬ: Обратите внимание, что я не могу присоединиться к домену с хоста.

1 ответ1

2

Это происходит потому, что это именно то, что вы просили.

Я бы рекомендовал прочитать о том, что делает переключатель /netonly : http://www.pseale.com/pretend-youre-on-the-domain-with-runas-netonly


Почему это происходит

Обычно обычный runas запускает программу под указанным пользователем, так же, как sudo -u в Linux. Это означает, что все локальные и удаленные действия происходят под указанным пользователем.

Однако когда вы передаете /netonly , все становится странно. runas запускает программу локально под текущим вошедшим пользователем, но любые сетевые запросы (предположительно, все, что выполняет Kerberos/NTLM/SPNEGO auth) используют указанного пользователя.

whoami проверяет только локального пользователя. Поскольку вы указали /netonly , это не изменится , и у вас будут все разрешения вашего текущего вошедшего в систему пользователя, вы будете использовать профиль текущего пользователя для любых настроек и т.д. Все до тех пор, пока вы не сделаете запрос к сетевому компьютеру, после чего вы будете выдавать себя за пользователя, которого вы указали в команде runas .

Если это то, что вы хотите, отлично! Если нет, и если вы действительно хотите, чтобы программа работала полностью под указанным пользователем даже на локальном компьютере, удалите /netonly из вашей команды.


Проверка пользователя

К сожалению, не похоже, чтобы такая простая команда, как whoami проверяла, с каким пользователем вы работаете удаленно при использовании /netonly .

Если у вас включена какая-либо форма удаленного взаимодействия команд, вы можете использовать их. Без них самый простой метод, который я могу придумать, - это подключение к общему сетевому ресурсу и проверка, к какому общему ресурсу вы подключены с другого конца.

С компьютера1:

runas /netonly /user:DOMAIN\TestUser2 powershell

И внутри экземпляра powershell:

net use \\computer2

Который будет подключаться к IPC$ computer2 netonly используя удаленного пользователя. Позже вы можете отменить это с помощью net use /delete \\computer2 .

С компьютера2:

net share IPC$

Это должно дать вам список подключенных пользователей, который должен включать того, кого вы runas :

Share name        IPC$
Path
Remark            Remote IPC
Maximum users     No limit
Users             TestUser2
Caching           Manual caching of documents
Permission        Everyone, FULL

The command completed successfully.

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