Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Узнать имя пользователя инициировавшего сеанс RDP

Ответить
Настройки темы
Любой язык - Узнать имя пользователя инициировавшего сеанс RDP

Аватара для R@MZEZzz

Пользователь


Сообщения: 49
Благодарности: 12

Профиль | Отправить PM | Цитировать


Необходимо узнать имя пользователя инициировавшего сеанс RDP. Например:
RDP сервер на базе 2012R2, rdp_srv в домене corp.blabla.ru
Удаленные клиенты (рабочая группа) подключаются под доменными пользователями.
Комп Vasya, пользователь Pupkin, подключается к rdp_srv через стандартный mstsc, НО имя пользователя пишет corp\VPup
И работает на сервере под ним..
А мне нужно узнать имя, какое было у него на локальном компьютере - "Pupkin".
Это возможно как то реализовать? Вообще это имя передаётся ли на сервер при RDP подключении?
Подойдет любое решение, будь то скрипт\кусок кода и т.п.
Клиенты разные от winxp до win10. Если будет работать хотя бы с win10 - уже можно считать победой.
Буду признателен любой помощи

Отправлено: 15:17, 08-02-2017

 

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


сколь мне известно передается только имя компьютера (%CLIENTNAME%), а почему пользователь не заходит под своей учетной записью?

Отправлено: 15:56, 08-02-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для R@MZEZzz

Пользователь


Сообщения: 49
Благодарности: 12

Профиль | Отправить PM | Цитировать


Цитата Elven:
а почему пользователь не заходит под своей учетной записью? »
для этого придется создавать его дополнительно на сервере, а не в домене, а это влечет дополнительную цепочку неприятностей, будь то "прозрачный"(под текущим доменным пользователем) вход в 1с, применение политик на сервере для пользователя и т.д.

Отправлено: 16:00, 08-02-2017 | #3


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


R@MZEZzz, вы не поняли вопрос, если пользователь заходит под своей доменной учеткой (под которой логинился локально) то и переменная %USERNAME% и команда whoami должны вернуть то же самое значение (т.е. одинаковое и на локальной машине и на той к которой он подключился по RDP). по каким причинам они могут не совпадать?

Отправлено: 16:04, 08-02-2017 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Нет, тут другой вопрос: почему пользователи работают локально под локальными учётными записями, а не под доменными?!

Отправлено: 16:09, 08-02-2017 | #5


Аватара для R@MZEZzz

Пользователь


Сообщения: 49
Благодарности: 12

Профиль | Отправить PM | Цитировать


Elven, Iska,
Пользователи удаленные (другой город) другая сеть, может быть даже другой домен (пока не встречалось)
а заходят на сервер в моём домене через интернет.
Пускать их в VPN или в мой домен нельзя, всё должно оставаться для них как есть на данный момент.
К тому же меняются они довольно часто, 3-5 пользователя в месяц (ротация). Зачем - не спрашивайте, я не вникал, мне лишь нужно настроить..

Цитата Elven:
если пользователь заходит под своей доменной учеткой (под которой логинился локально) »
в том то и дело что логинился он с локальной, а заходит с доменной!
и мне с сервера надо узнать имя локальной...

вообще изначальная задача такая: Чтобы подключившийся пользователь, находясь на удаленном рабочем столе видел документы и папки своего родного локального рабочего стола, мог читать и писать в них.
Вручную задача решается сменой в реестре стандартных путей к раб столу\документам\загрузкам и т.д. на пути \\tsclient\c\users\<Имя локального пользователя>\Desktop\ и т.п. Сюда то мне имя и надо, чтобы автоматизировать весь этот процесс.
Можно конечно использовать "обходной" путь:
2 программы (скрипта), одна на клиенте, вторая на сервере.
Клиентская запускается единожды и сохраняет например в корень диска С: пути к Рабочему столу и т.д. в формате \\tsclient\C\users\....
Серверная запускается при логине пользователя, смотрит в его корень С: через \\tsclient\C\.. если есть файл с путями - пишет его в реестр, нет - пишет стандартные значения.
Но самый большой минус в необходимости запускать что то на клиенте. Задача - обойтись без этого.

Отправлено: 16:31, 08-02-2017 | #6


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Изображения
Тип файла: png disks.png
(13.1 Kb, 9 просмотров)

Я, конечно, не уверен полностью так чтобы совсем, но именно от имени сервера узнать имя локальной учетки вряд ли получится. Разве что делать хитрый финт ушами, заставляя пользователей логиниться как-нибудь вот так:

Код: Выделить весь код
echo %username% > //server/share/%computername%
mstsc.exe /v:server
Правда при этом придется расшарить на запись папку для пользователей не своего домена, что смотрится мне крайне нехорошим.

И потом уже в RDP сессии спрашивать, что находится в файле //server/share/%CLIENTNAME% и подставлять в те ключи которые нужно. Если использовать приведенный пример, то приблизительно так:
Код: Выделить весь код
for /f %%i in (//server/share/%CLIENTNAME%) do (
echo \\tsclient\c\users\%%i\Desktop\
)
Вообще же при работе с RDS, если моя память не спит с другим, в системе видятся все диски как сервера так и клиента, или как в данном случае предоставляется доступ к RDP?

Последний раз редактировалось Elven, 08-02-2017 в 17:25.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:13, 08-02-2017 | #7


Аватара для R@MZEZzz

Пользователь


Сообщения: 49
Благодарности: 12

Профиль | Отправить PM | Цитировать


Elven, ну смысл получается тот же что и я описал.
Но все равно спасибо за уделенное время!

Отправлено: 23:06, 08-02-2017 | #8


Аватара для R@MZEZzz

Пользователь


Сообщения: 49
Благодарности: 12

Профиль | Отправить PM | Цитировать


еще одна бредовая идея пришла, попробую так сделать:
программка на сервере, запускается при логине пользователя, сканирует папки пользователя в \\tsclient\c\users\ (или documents and settings)
Ищет в каждой из них (кроме all users и default) подпапку Desktop (Рабочий стол в случае winxp). и подсчитывает кол-во папок\файлов в ней.
Таким образом выделяем из них самую "увесистую", исключая "пустые" профили, что в 90% случаев и будет рабочим столом реального пользователя.
Конечно если пользователь не только что винду поставил и подключается к нам, тут надо экспериментировать...
В общем как вариант, костыль - но вариант

Отправлено: 09:37, 09-02-2017 | #9


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Цитата R@MZEZzz:
программка на сервере, запускается при логине пользователя, сканирует папки пользователя в \\tsclient\c\users\ (или documents and settings)
Ищет в каждой из них (кроме all users и default) подпапку Desktop (Рабочий стол в случае winxp). и подсчитывает кол-во папок\файлов в ней. »
От чьего имени запускается такая программа? Пользователь, от имени которого происходит подключение не имеет прав на ресурсы локальной машины, пользователь, залогиненный на локальной машине не имеет прав на ресурсы сервака. Здесь проблема не в написании скрипта, а в выдаче нужных разрешений. Причем я уже запутался где их нужно больше и где они будут кривее.
И еще, каким образом реализован сервер терминалов? Если прокинуть рабочий стол к рабочему столу нет возможности, то предоставить доступ к локальным дискам зачастую не только просто, но и идет "из коробки".

Отправлено: 12:12, 09-02-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Узнать имя пользователя инициировавшего сеанс RDP

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Загрузка - [решено] сохранился сеанс пользователя ibros Microsoft Windows 7 2 26-10-2016 10:15
2008 R2 - Имя пользователя и полное имя пользователя при организации общего доступа к файлам Kniaz Windows Server 2008/2008 R2 0 12-06-2013 13:19
[решено] Узнать имя пользователя, от которого запущен процесс vitalisvv AutoIt 4 16-09-2009 01:16
Прочие БД - Как узнать имя пользователя в MS Access? st031 Программирование и базы данных 0 30-08-2009 18:24
Как узнать _полное_ имя пользователя? fantik Microsoft Windows NT/2000/2003 2 21-11-2006 18:13




 
Переход