Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Предложения по функции "запуск от имени" (run as) #382

Closed
Maximus5 opened this issue Jul 31, 2015 · 7 comments

Comments

@Maximus5
Copy link
Owner

Originally reported on Google Code with ID 382

"Запуск от имени..." нового экземпляра программы (новой вкладки) - очень удобная функция
ConEmu (сразу хотелось бы уточнить, что речь идёт о вызове именно встроенной функции
Windows - галочка "run as..." в нижней части диалога), и с этой функцией абсолютно
всё в порядке при работе под Windows 2000/XP/2003 (Windows Vista вообще пропустим как
нелепое создание).
Однако при работе под Windows 7/2008R2 реализация этой функции в ConEmu является даже
менее удобной, чем использование для той же цели "Проводника" - так как здесь ConEmu
нам предлагает только "повышение привелегий (rus as administrator)". Стандартно "Проводник"
ведёт себя также, но он позволяет зажать shift при щелчке правой кнопкой - и вуаля
- становится доступен пункт "Запуск от имени другого пользователя" (что есть старый
добрый run as), а вот ConEmu не предоставляет такой (или подобной) возможности - соответственно
невозможно выполнить "настоящий запуск от имени". Было бы замечательно, если бы это
было реализовано (в виде отдельной галочки или кнопки в том же диалоге), ведь использование
Windows новых версий набирает обороты и в корпоративном окружении.

Reported by gigaplastik on 2011-04-10 13:16:22

@Maximus5
Copy link
Owner Author

Фигню-с пишете. Даже по скриншоту
http://code.google.com/p/conemu-maximus5/wiki/Screenshots#Confirmation_of_new_console_creation_(Win-W)
понятно, что conemu предоставляет возможность запуска под другим пользователем (радио
"Another user").

"RunAs" это функция ОС, то есть ее поведение зависит исключительно от реализации этой
функции самой ОС и НЕ зависит от conemu

Reported by ConEmu.Maximus5 on 2011-04-10 17:11:40

@Maximus5
Copy link
Owner Author

Я прошу прощения за "много букв", но ситуация требует подробного описания.
В диалоге ConEmu при выборе опции "another user" нельзя указать домен (см. скриншот
https://picasaweb.google.com/106336574353395140522/ConEmuRunAsWin2k8r2#5594166270178711954),
что приводит к следующему:
под любым Windows при указании "голого имени" доменного пользователя контекст домена
берётся от пользователя, выполняющего "запуск от имени" и запуск выполняется нормально;
однако, если пользователь с таким же именем существует на компьютере локально, то запуск
выполняется от имени локального пользователя и, в такой ситуации, нельзя выполнить
запуск от имени доменного пользователя; к тому же, в случае существования нескольких
доменов, нельзя указать пользователя из домена, отличного от текущего;

в случае Windows 2000/XP/2003 проблема решается установкой галочки "RusAs", что приводит
к запуску системного диалога "запуск от имени", в котором _можно_ указать домен (я
думал, что именно с этой целью эта галочка и существует в диалоге ConEmu - если я не
прав - то, пардон, зачем она там вообще?);
однако в случае Windows 7/2008R2 на месте этой галочки находится галочка повышения
привелегий "run as administrator" и, соответственно, отсутствует возможность вызвать
системный диалог "RunAs";

далее, если Windows 7/2008R2 работает с отключенным "контролем учётных записей (UAC)",
то в случае работы под пользователем с административными правами галочка "run as administrator"
всегда включена и недоступна (серая); если в такой ситуации попытаться выполнить "запуск
от имени" пользователя с более низкими (не административными) правами, то новый процесс
всегда запускается от имени пользователя, выполнявшего "запуск от имени", то есть _понижение_прав_
выполнить не удаётся (что иногда требуется);
если в той же конфигурации Windows "запуск от имени" выполняет пользователь с ограниченными
(не административными) правами, то галочка "run as administrator" не включена и доступна
и любой "запуск от имени" (как с тем же уровнем прав, так и с повышением до административных)
выполняется нормально, однако всё с теми же ограничениями на указание домена.

Признаться, я не совсем уверен, что здесь зависит от ConEmu, а что от Windows API...
Что я хотел сказать ещё в первой заметке - это то, что хотелось бы иметь возможность
вызывать системный диалог "запуск от имени" не только под Windows 2000/XP/2003, но
и на более новых версиях Windows (в том числе и с отключенным UAC).

Reported by gigaplastik on 2011-04-11 04:09:10

@Maximus5
Copy link
Owner Author

На счет домена - проверю. По идее, домен указывать можно. Возможно, это не ваш домен,
и вы не подключались к его контроллеру ранее? Попробуйте подключиться к этому домену
любым другим образом, а потом указать домен в "Another user" в conemu.

Еще раз повторю, что "runas" это функция OS
http://msdn.microsoft.com/en-us/library/bb762153%28v=vs.85%29.aspx
в Vista+ это elevation, а в XP и ниже - "другой юзер"

Reported by ConEmu.Maximus5 on 2011-04-11 07:20:35

@Maximus5
Copy link
Owner Author

Да я понимаю, что такую возможность предоставляет и запуск выполняет сама ОС :)
Тем не менее, результат имеем разный. И даже с внешними признаками.
Когда я только знакомился с ConEmu сам бы очень удивлён этому факту!
Пример:
Под Windows XP запускаем ConEmu, нажимаем "плюсик" с шифтом или хоткей:
вариант1. в диалоге выбираем "another user", заполняем поля, кнопка старт = получаем
внешне обычную новую вкладку, запущенную от другого пользователя;
вариант2. в диалоге ничего не заполняем, включаем галочку "runas", кнопка старт = получаем
системный диалог "runas", уже в нём выбираем "following user", заполняем поля, кнопка
ОК = получаем новую вкладку, запущенную от другого пользователя, в заголовке которой
перед названием есть иконка человечка - если это точно также запущенный процесс, то
почему?

> Возможно, это не ваш домен, и вы не подключались к его контроллеру ранее?
Нет. Это мой домен, который я администрирую, и компьютер тоже часть этого домена. Поля
"another user" диалога ConEmu абсолютно точно не принимают формат домен\пользователь.

> в Vista+ это elevation, а в XP и ниже - "другой юзер"
Ну Vista во многом "отдыхает", это промежуточный недоделанный продукт. Рассматривать
правильнее Windows 7.
http://www.winhelponline.com/blog/run-as-different-user-option-inbuilt-windows-7/
(как раз возможности вызвать диалог, описываемый в статье по ссылке, и не хватает в
диалоге "запуск от имени" ConEmu при работе под Windows 7/2008R2 - именно это и является
причиной написания всех этих слов в этом Issue)

"Повышение прав (elevation)" и "запуск от имени другого пользователя (runas)" могут
конечно вызываться одной функцией, но концептуально - это разные вещи.
elevation - это повышение привелегий (и только в случае активного UAC);
runas - это получение контекста _другого_ пользователя;
эти два действия могут выполняться как вместе (смена пользователя с повышением привелегий),
так и отдельно, каждое само по себе (повышение привелегий текущего пользователя или
получение контекста другого пользователя без повышения привелегий).

Reported by gigaplastik on 2011-04-11 16:02:41

@Maximus5
Copy link
Owner Author

как говорится - "многа букаф" )

Смысл всего issue можно описать в двух предложениях: что "в поле Another user не удается
указать домен" и "Это мой домен, который я администрирую, и компьютер тоже часть этого
домена". Все, информации достаточно - буду проверять.

еще раз. "runas" это verb в функции ShellExecute. Что делает этот verb - зависит от
ОС. то есть поведение флажка в conemu НЕ изменится, ибо флажлк просто вызывает этот
verb.

Reported by ConEmu.Maximus5 on 2011-04-11 22:06:27

@Maximus5
Copy link
Owner Author

Как оказолось, все просто.
Вводите имя в формате "user@domain" )
domain\user в следующей версии подкручу

Reported by ConEmu.Maximus5 on 2011-04-13 16:16:03

@Maximus5
Copy link
Owner Author

Reported by ConEmu.Maximus5 on 2012-01-05 15:04:51

  • Status changed: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant