Пользователь PowerShell ISE runas сообщает другому пользователю whoami

564
user1330734

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

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

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

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

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

1
Я вполне уверен, что вам не нужно присоединяться к домену, чтобы использовать `runas`, с или без` / netonly`. То есть, предполагая, что домен разрешает аутентификацию NTLM - если он обеспечивает аутентификацию Kerberos, вам не повезло. Я думаю. Bob 6 лет назад 0

1 ответ на вопрос

2
Bob

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

Я бы порекомендовал прочитать о том, что /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.