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