On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 633
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 06.01.22 14:37. Заголовок: Идентификатор сессии


Приветствую !

Как можно узнать идентификатор текущей RDP-сессии ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 37 , стр: 1 2 All [только новые]


администратор




Пост N: 7529
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.01.22 15:51. Заголовок: Копай https://social..

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7198
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.01.22 09:58. Заголовок: Вопрос немного не в ..


Вопрос немного не в тему, но тоже про RDP-сессию.
Как можно узнать из своей проге на Харборе
сколько клиентов подключилось к серверу (RDP-сессии) или список логинов RDP-сессий ?

Типа такого - https://kuharbogdan.com/stati-po-1s/7-sposobov-posmotret-kto-rabotaet-na-servere-terminalov/

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7530
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.01.22 14:56. Заголовок: Andrey Не в туда ко..


Andrey
Не в туда копаете товарисч
https://infostart.ru/1c/articles/165702/
см. функцию Computer_Terminal
Переложить это в Harbour + Wmi как два пальца об асфальт.......

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7199
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.01.22 15:28. Заголовок: Спасибо Dima ! :sm3..


Спасибо Dima !
Буду разбираться...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7531
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.01.22 22:16. Заголовок: Andrey Отпиши о рез..


Andrey
Отпиши о результате если не сложно
Получилось или нет.....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7201
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.01.22 14:17. Заголовок: Dima пишет: Отпиши ..


Dima пишет:

 цитата:
Отпиши о результате если не сложно


Всё руки не доходили до этого...
Начал пробовать и сразу затык !
А как узнать что моя прога запускается на сервере терминалов ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7564
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.01.22 15:23. Заголовок: win_OsIsTSClient()..


win_OsIsTSClient()

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7565
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.01.22 16:26. Заголовок: Andrey пишет: сколь..


Andrey пишет:

 цитата:
сколько клиентов подключилось к серверу (RDP-сессии) или список логинов RDP-сессий


Пробуй вроде норм пашет...
Уверен что есть и другие способы это узнать через WMI , но надо с запросами разбираться
а времени нет.
 
Proc main
LOCAL oWMI
LOCAL objWMI
LOCAL oTerminal
LOCAL objItem
Local Ocosver
Local elem
local it:=0
REQUEST HB_CODEPAGE_RU1251
hb_cdpSelect( "RU1251" )



? "win_OsIsTSClient()",win_OsIsTSClient()

objWMI:=WmiService()

objWMI:Security_:ImpersonationLevel:=3
objWMI:Security_:AuthenticationLevel:=6

Ocosver:= objWMI:InstancesOf ("Win32_OperatingSystem")
for each elem in Ocosver
? elem:name
next




oTerminal:= objWMI:ExecQuery("Select * from Win32_LogonSession Where LogonType=10" )

? "Number of terminal sessions ",oTerminal:count
FOR EACH objItem IN oTerminal
? "objItem:LogonId", objItem:LogonId
? "objItem:StartTime", objItem:StartTime

// objItem:Name и остальные фишки почему то возвращают NIL

next



wait
RETURN
*******************
FUNC WMIService( cComp )
Local oWmi ,oLocator
hb_default(@cComp,'.')

BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
oLocator:= win_oleCreateObject( "wbemScripting.SwbemLocator" )
oWMI:= oLocator:ConnectServer(cComp,"ROOT\CIMV2")
End SEQUENCE
RETURN oWmi



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7566
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.01.22 20:25. Заголовок: Вот еще вариантик ..


Вот еще вариантик
 
oTerminal:= objWMI:ExecQuery("Select * from Win32_LogonSession Where LogonType=10" )

FOR EACH objItem IN oTerminal
? id:=objItem:LogonId
userlist:=objWMI:ExecQuery("ASSOCIATORS OF {Win32_LogonSession.LogonId="+id+"} WHERE AssocClass=Win32_LoggedOnUser Role=Dependent")
for each elem in userlist
? elem:name
next

next



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7567
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.01.22 20:53. Заголовок: Dima пишет: ? elem..


Dima пишет:

 цитата:
? elem:name


Вот тут еще можно отслеживать Status (elem:Status)
 
Status
Только для чтения. Текущий статус объекта. Может принимать следующие значения: "OK"
"Error"
"Degraded"
"Unknown"
"Pred Fail"
"Starting"
"Stopping"
"Service"


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7202
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.01.22 21:48. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !
В инете только много пишут вот так - ("Select * from Win32_LogonSession Where LogonType = 2 OR LogonType = 10")
Только в этой функции действительно нельзя получить имена пользователей в RDP-сессии
А мне юзеру нужно выдать список кто ещё к серверу за логинился.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7568
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.01.22 22:26. Заголовок: я подумаю Andrey ког..


я подумаю Andrey когда время появится , много надо для этого гуглить так как в WMI я тоже не особо
силен.......

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7569
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.01.22 22:27. Заголовок: Andrey пишет: Тольк..


Andrey пишет:

 цитата:
Только в этой функции действительно нельзя получить имена пользователей в RDP-сессии


имена есть смотри внимательней и ниже по коду

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7203
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.01.22 22:45. Заголовок: Dima пишет: имена е..


Dima пишет:

 цитата:
имена есть смотри внимательней и ниже по коду


Да увидел ! Писал уже после того как ты добавил.
Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7570
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.01.22 23:10. Заголовок: Andrey Собери EXE и..


Andrey
Собери EXE из исходника , запусти на серванте и все увидишь.
Там код cамодостаточный для сборки.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7204
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.01.22 23:13. Заголовок: Да, сделал пока так...


Да, сделал пока так. Работает однако !
Кому интересно -
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7571
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.01.22 23:43. Заголовок: Andrey Ну вот и отл..


Andrey
Ну вот и отлично когда не ленишься

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7572
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.01.22 13:03. Заголовок: Можно еще через Wtsa..


Можно еще через Wtsapi32.dll пробнуть

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7205
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.22 13:31. Заголовок: Dima пишет: Можно е..


Dima пишет:

 цитата:
Можно еще через Wtsapi32.dll пробнуть


Это как ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7573
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.01.22 13:56. Заголовок: Andrey пишет: Это к..


Andrey пишет:

 цитата:
Это как ?


это API и там куча функций для TS
https://docs.microsoft.com/ru-ru/windows/win32/api/wtsapi32/

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7206
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.22 16:18. Заголовок: Andrey пишет: Да, с..


Andrey пишет:

 цитата:
Да, сделал пока так. Работает однако !


НЕ РАБОТАЕТ !!!
Если запускать под учёткой пользователя - то НЕ работает !
Если запускать под учёткой администратора, то работает.
Блин, опять засада.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7576
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.01.22 16:43. Заголовок: Andrey пишет: Если ..


Andrey пишет:

 цитата:
Если запускать под учёткой пользователя - то НЕ работает !


ну так зашей L/P админа там где подключение идет в ConnectServer
можно зашифровать и в какой то базе держать
https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemlocator-connectserver

Можно попробовать поиграть с привилегиями

http://scriptcoding.ru/2013/04/12/swbemsecurity/

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7207
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.22 16:54. Заголовок: Dima пишет: ну так ..


Dima пишет:

 цитата:
ну так зашей L/P админа там где подключение идет в ConnectServer


В твоём примере нет ConnectServer !
Как это можно добавить ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7577
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.01.22 17:00. Заголовок: Andrey пишет: В тво..


Andrey пишет:

 цитата:
В твоём примере нет ConnectServer !



Dima пишет:

 цитата:
oWMI:= oLocator:ConnectServer(cComp,"ROOT\CIMV2")


а это что ?
может пример не тот смотришь ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7208
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.22 17:01. Заголовок: Dima пишет: а это ч..


Dima пишет:

 цитата:
а это что ?


Где логин и пароль добавить ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7578
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.01.22 17:04. Заголовок: Andrey пишет: Где л..


Andrey пишет:

 цитата:
Где логин и пароль добавить ?


Ты трезвый вообще ?
oWMI:= oLocator:ConnectServer(cComp,"ROOT\CIMV2",логинТУТ,пассТУТ)
ведь ссылку на доку же дал

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7209
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.22 17:29. Заголовок: Dima пишет: ведь сс..


Dima пишет:

 цитата:
ведь ссылку на доку же дал


objwbemServices = .ConnectServer( _ 
[ ByVal strServer ], _
[ ByVal strNamespace ], _
[ ByVal strUser ], _
[ ByVal strPassword ], _
[ ByVal strLocale ], _
[ ByVal strAuthority ], _
[ ByVal iSecurityFlags ], _
[ ByVal objwbemNamedValueSet ] _
)

Смутил параметр [ ByVal strNamespace ]
Спасибо !
Буду пробовать.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7579
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.01.22 18:14. Заголовок: Andrey пишет: Смути..


Andrey пишет:

 цитата:
Смутил параметр [ ByVal strNamespace ]


strNamespace – задаем пространство имен (например, root\CIMV2), если оно отсутствует, то будет взято пространство по умолчанию (оно прописано в реестре в ветке HKLM\SOFTWARE\Microsoft \WBEM\Scripting\ Default Namespace)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7211
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.01.22 13:43. Заголовок: Dima пишет: oWMI:= ..


Dima пишет:

 цитата:
oWMI:= oLocator:ConnectServer(cComp,"ROOT\CIMV2",логинТУТ,пассТУТ)


Если логин и пароль неправильны, то прога вылетает с ошибкой.
Error BASE/1004 Метод не экспортирован: SECURITY_ Args: [1] = U 
--------------------------------- Stack Trace ---------------------------------
Called from SECURITY_(0)
Called from WMILOGONSESSION(114) in module: hmgLogonSession.prg
Called from MAIN(45) in module: hmgLogonSession.prg

Как узнать что логин и пароль подошли на этом сервере ?
Если админ поменяет пароль, то прога будет просто вылетать.
С админом всегда трудно договориться. Они частенько меняются на фирме.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7580
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.01.22 15:43. Заголовок: Andrey пишет: Как у..


Andrey пишет:

 цитата:
Как узнать что логин и пароль подошли на этом сервере ?


я думаю что примерно так
 
BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
oLocator:= win_oleCreateObject( "wbemScripting.SwbemLocator" )
oWMI:= oLocator:ConnectServer(cComp,"ROOT\CIMV2", Login , pass)

if !hb_isobject(oWMI)
? "Что то пошло не так :)"
? hb_valtoexp(oWmi)
Owmi:=NIL
endif

Recover
// тут тоже можно что то чекануть
END SEQUENCE


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7212
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.01.22 15:56. Заголовок: Вообщё хрень получае..


Вообщё хрень получается.
Сегодня пример перестал работать.
Вот пример -
Скрытый текст

Взял твой пример и сделал минимум переделок.
Что опять недосмотрел ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7581
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.01.22 16:07. Заголовок: Andrey пишет: Взял ..


Andrey пишет:

 цитата:
Взял твой пример и сделал минимум переделок


Лучше оставь свой пример который работал и сделай в нём тот же минимум переделок.
А если чего и забыл то может L/P указать при подключении к серваку в строке oWMI := oLocator:ConnectServer(cComp,"ROOT\CIMV2")

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7213
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.01.22 16:30. Заголовок: Dima пишет: Лучше о..


Dima пишет:

 цитата:
Лучше оставь свой пример который работал и сделай в нём тот же минимум переделок.


Тот тоже не работает....

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7582
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.01.22 18:39. Заголовок: Может админ увидел т..


Может админ увидел твои движняки и кислород перекрыл в виде отключения
WMI сервиса :)

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7584
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.01.22 20:03. Заголовок: Глянь что возвращает..


Глянь что возвращает oWMI:= oLocator:ConnectServer(cComp,"ROOT\CIMV2")
Если это не объект то печалька и видать админчег что то подкрутил......

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7215
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.22 17:34. Заголовок: Это просто цирк а не..


Это просто цирк а не WMI.
Как нет пользователей, то пример работает.
Как пользователей больше 2 то пример не работает - возвращает 0 !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7602
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.02.22 18:15. Заголовок: Да уж........


Да уж......

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 37 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 209
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет