Назад | Перейти на главную страницу

Есть ли аналог SU для Windows

Есть ли способ (при входе в систему как администратор или как член группы администраторов) замаскироваться под непривилегированного пользователя? Особенно в среде AD.

например, в мире Unix я мог бы сделать следующее (как root):

# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit

Мне нужно что-то протестировать / настроить в учетной записи пользователя, и я не хочу знать его пароль или сбрасывать его.

Редактировать:
runas не порежу. в идеале, весь мой рабочий стол станет пользователем и т. д., а не только в окне cmd.

Я почти уверен, что не существует поддерживаемого способа работать от имени другого пользователя без учетных данных этого пользователя. Это мера предотвращения отказа от авторства. Кто-то не может сказать: «Я этого не делал», потому что либо они это сделали, либо кто-то с их полномочиями сделал это. И во второй раз они должны были предоставить другому человеку полномочия.

Обычно то, что мне нужно делать, когда я вошел в систему как другой пользователь, - это использовать удаленную помощь для по существу RDP в сеансе, и они предоставляют мне контроль. Затем я делаю что угодно, пока они смотрят (во всяком случае, по-видимому).

Все остальное обычно можно сделать с помощью GPO / скриптов.

Я заметил, что многие другие люди упоминают о вариантах команды runas и о том, как вам нужно знать пароль пользователя, который является правда, но я не думаю, что кто-то спокойно ответил на этот вопрос. "желая все рабочий стол станет пользователем и т. д., а не только в окне cmd ". Вот как я это делаю:

Заметка: Я буду называть эту первую командную строку CP1, чтобы позже устранить путаницу.

Под своей учетной записью администратора откройте командную строку

Для местный учетная запись

runas /profile /user:computernamehere\username cmd

Для домен учетная запись

runas /profile /user:domainname\username cmd

ИЛИ так, как я предпочитаю

runas /profile /user:username@domainname cmd

Примечание: Откроется новая командная строка (CP2), это пользователь, под которым вы пытаетесь войти.

Откройте CP1 и введите:

taskkill /f /IM explorer.exe

Откройте CP2 и введите:

explorer.exe

В зависимости от компьютера он может создать профиль для пользователя, если он никогда раньше не входил в систему. Вы можете сэкономить хассел позже, держать окна командной строки открытыми для дальнейшего использования.

Когда вы закончите свою работу, просто сделайте то же самое в обратном порядке.

В типе CP2:

taskkill /f /IM explorer.exe

Откройте CP1 и введите:

explorer.exe

Теперь вы должны вернуться в исходную учетную запись администратора. Вы можете выполнить быструю проверку, нажав клавишу Windows и выполнив поиск панели текущего пользователя.

Надеюсь, это помогло.

В Windows нет встроенного механизма для этого. Это можно сделать, но вам нужно будет что-то написать, чтобы делать то, что вы хотите, и вам, вероятно, придется возиться с недокументированными API.

Один из плакатов здесь, grawity, прав с вызовом CreateProcessAsUser (), но сначала вам нужно создать токен с недокументированным собственным API zwCreateToken. Если вы отключили Explorer и запустили новый экземпляр Explorer с CreateProcessAsUser (), я почти уверен, что вы получите то, что хотите.

Microsoft не упрощает то, что вы хотите сделать, потому что это не так, как они хотят, чтобы вы использовали NT. Если вам нужно войти в систему как пользователь для устранения их проблем, в большинстве случаев вы делаете это неоптимальным образом.

Вы можете вносить изменения в реестр пользователя, не входя в систему под ним (путем присоединения его куста реестра и манипулирования им таким образом). Вы можете вносить изменения в файлы в их профиле пользователя без входа в систему как пользователь. Если вам нужно «настроить электронную почту» или другие подобные действия «от имени пользователя», вы должны писать сценарии или использовать встроенные функции (административные шаблоны групповой политики, настройки и т. Д.), Чтобы делать за вас грязную работу.

если ты иметь для этого взгляните на RunAsEx в Code Project. Этот код должен дать вам довольно хорошее представление о том, что вам нужно делать. Я не пробовал программу, но похоже, что все идет правильно.

Вы можете использовать следующую команду в Windows XP и более поздних версиях:

RunAs.exe

Доступны параметры командной строки Вот.

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

(Только предположение.) Если в вашей учетной записи SeCreateTokenPrivilege, вы можете написать небольшую программу для создания процесса, используя CreateProcessAsUser() или аналогичная функция ... (Но даже администраторы не имеют этой привилегии по умолчанию.)

Хотя у меня нет личного опыта работы с некоторыми решениями sudo, упомянутыми на этом сайте, я настоятельно рекомендую неадмин началось с отличного Аарон Маргозис. Это огромная помощь при развертывании ограниченного числа пользователей. Я в основном прыгал с чем-то, потому что все говорят, что используйте Runas. Однако я думаю, что большинство или все из этих так называемых sudo для Windows больше связаны с повышением прав, а не действуют как другой пользователь без его пароля.

Обозреватель процессов procxp.exe на http://live.sysinternals.com имеет запуск от имени ограниченного пользователя (в меню файла), который позволит вам запускать программу, используя ваши текущие учетные данные, но с сокращенным списком контроля доступа до уровня обычного пользователя (не администратора). Не совсем то, что вы хотели, но подходит для тестирования.