Что нового

Удаленные сеансы пользователей

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Здравствуйте, есть такая штука как "Подключение к удаленному рабочему столу", как можно: вывести список пользователей, завершить пользователя, узнать имя компьютера подключаемого к уд. столу, Узнать код.
Мне нужно вывести такой -же список:

Помогите пожалуйста.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в Windows команда query session
если это поможет
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
joiner
Мне нужно обновлять все это регулярно, внешние программы не подойдут...
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в архиве UDF и пример использования. вроде твой пример.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Видимо <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa383464(v=vs.85).aspx">это</a> то что надо.


Добавлено:
Сообщение автоматически объединено:

Вот например вызов функции: WTSGetActiveConsoleSessionId
Код:
Func _GetActiveConsoleSessionId()
	Local $Ret = DllCall("Kernel32.dll", "dword", 'WTSGetActiveConsoleSessionId')
	If (@error) Or (Not $Ret[0]) Or ($Ret[0] = 0xFFFFFFFF) Then
		Return SetError(1, 0, "")
	EndIf
	Return $Ret[0]
EndFunc   ;==>__GetActiveConsoleSessionId
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
joiner
Это неплохо, как узнать под каким пользователем я?
И как завершать других?


Добавлено:
Сообщение автоматически объединено:

inververs
Что -то не работает:
Код:
#include <array.au3>
MsgBox(0,0,_GetActiveConsoleSessionId())
_ArrayDisplay(_GetActiveConsoleSessionId())

Func _GetActiveConsoleSessionId()
    Local $Ret = DllCall("Kernel32.dll", "dword", 'WTSGetActiveConsoleSessionId')
    If (@error) Or (Not $Ret[0]) Or ($Ret[0] = 0xFFFFFFFF) Then
        Return SetError(1, 0, "")
    EndIf
    Return $Ret[0]
EndFunc   ;==>__GetActiveConsoleSessionId
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
joiner [?]
в Windows команда query session
есть схожая команда query user. дает имя подключенного пользователя.
в примере, который я прикрепил, используется работа с объектами. в этом случае так же можно использовать команду query user.
я не знаю как это сочинить. не силен в работе с
Код:
ObjGet
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
joiner
Как можно это получить WinAPI например?)
 

Mur

Осваивающий
Сообщения
132
Репутация
32
OffTopic:
VladUs, опередили ;D
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Что -то я не как разобраться не могу, помогите сделать так.
Мне нужно что -бы не было активных сесий на 1 пользователе как тут:

Мне нужно сделать так, чтобы на каком пользователе стоит скрипт допустим на нижнем(см. скрин) под кодом "3", Допустим скрипт стоит на коде "3", он проверяет не подключился ли кто -то другой к этому пользователю. Если подключился то убить в данном случае код'а "1".
Т.е Скрипт не должен давать делать из одного пользователя 2ве и более сессии...
Надуюсь на вашу помощь :smile:
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
это лучше сделать через групповые политики
gpedit.msc - конфигурация компьютера-административные шаблоны - компоненты windows - службы терминалов. в правом окне выбрать "ограничить пользователей службы терминалов одним удаленным сеансом". включить этот параметр
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
все изменения в системе регистрируются в реестре. найди ключ в реестре, который меняется при включении данного параметра и через скрипт записывай его..
если через все эти приблуды в скрипте. то тебе нужно не только вычислить дубль имени но и время подключения. так как только по этому можно узнать кто нужен а кто нет. или постоянный контроль ID.
зачем тебе еще один цикл постоянной проверки?

посмотри здесь http://did5.ru/it/windows/kak-sdelat-iz-windows-7-terminalnyj-server.html
правда сам не проверял
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Ganibal95

Предупреждение За нарушение общих правил (пункт В.8):
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
joiner
Что -бы делать что -то с реестром и.т.д... У меня просто не хватает привелегий, у меня там простой пользователь.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
это как? ты собрался завершать сеансы под пользователем без прав администратора? ну так никак это не получится. я думал что ты у себя на компе сделал типа терминального сервера и хочешь контролировать подключения.
опиши картину происходящего
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
joiner
Вообще -то получается...
я могу спокойно завершать пользователей которые создают другие сеансы под тем -же пользователем...
Так что жду помощи в решения задачи :smile:
+ GIF Видео:
3510.11562851784.gif
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
а в реестре точно не можешь? это самый простой способ.
если что сделай себе права на запись
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
joiner
Там заблокировано все кроме:
HKEY_CURRENT_USER

Разве этого будет достаточно?


Добавлено:
Сообщение автоматически объединено:

joiner [?]
если что сделай себе права на запись
Это невозможно...
 
Верх