Определить IP-адрес клиента RDP

1. Angealtor 32 09.03.16 11:32 Сейчас в теме
Просмотрел несколько тем на мисте:
http://www.forum.mista.ru/topic.php?id=524473
http://www.forum.mista.ru/topic.php?id=481072
Сейчас пользуюсь компонентой SendToLocalHost. Работает отлично, но хотелось решения без использования компонент, например, через vbs-скрипт. Кто-нибудь сталкивался с другими решениями такой задачи? Нужно тоже самое, что возвращает компонента SendToLocalHost и я так понимаю, что это значение одного из полей виндового класса WTSQuerySessionInformation.
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1484 09.03.16 11:38 Сейчас в теме
(1) Angealtor, можно использовать компоненту работы с пауршел. У меня публикация есть. Или зачем вообще скрипт использовать? Чтобы заказчику не нужно было ставить компоненту? Тогда сохранить сценарий в макет и потом его запускать, что тоже самое, только программно работать сложнее.
+
3. Fox-trot 158 09.03.16 11:42 Сейчас в теме
(2)
только программно работать сложнее
зависит от компетенции программиста
+
4. Angealtor 32 09.03.16 11:50 Сейчас в теме
Под vbs-скриптом имел в виду что-то в виде такого:

Функция getIPAddress() 
Попытка
 sc=Новый COMОбъект("MSScriptControl.ScriptControl"); 
 sc.language="VBscript"; 
 strFunc="function getIPAddress() 
| Set objShell = CreateObject (""WSCript.Shell"") 
| Set objWshScriptExec = objShell.Exec(""C:\GETTSCIP.exe"") 
| Set objStdOut = objWshScriptExec.StdOut 
| While Not objStdOut.AtEndOfStream 
|    strLine = objStdOut.ReadLine 
|    If InStr(strLine,""WTSClientAddress"") Then 
|      getIPaddress = Trim(Right(strLine, Len(strLine) - InStr(strLine,"":""))) 
|    End If 
| Wend 
|End Function";

sc.addCode(strFunc); 
Исключение Возврат("0") КонецПопытки; 

Возврат sc.run("getIPAddress"); 
КонецФункции
Показать


В этом примере тоже используется внешний файл. Но надеюсь на помощь в поиске решения именно такого плана.
+
5. Xershi 1484 09.03.16 11:53 Сейчас в теме
(4) Angealtor, т.е. вы хотите не использовать внешний файл и внешнюю компоненту?
+
6. Angealtor 32 09.03.16 12:01 Сейчас в теме
(5) Xershi, Да. Под "неиспользованием внешней компоненты" имел в виду, что не использовать что-то нестандартное, что нужно доустанавливать, а стандартные объекты и классы Windows.
+
7. Xershi 1484 09.03.16 12:25 Сейчас в теме
(6) Angealtor, тогда я вам уже ответил в (2). Хотя может есть какие-то методы через ком-объекты, это уже погуглите.
+
9. Fox-trot 158 10.03.16 07:42 Сейчас в теме
(6) Angealtor, https://blogs.msdn.microsoft.com/alejacma/2008/03/04/how-to-get-the-logged-on-user-with-wmi-vbscript/
использован vbscript. там оч много чего понаписано, а если кратко , то
Function Get-LoggedOn ($Comp = $env:computername)
{
Get-WmiObject -computername $Comp -query `
"Sel ect * fr om Win32_LogonSession where logontype = 2 or logontype = 10" |
foreach {Get-WmiObject -computername $Comp -query `
"Associators of {Win32_LogonSession.LogonId=$($_.logonid)} Where AssocClass=Win32_LoggedOnUser Role=Dependent"}
}
+
10. Angealtor 32 10.03.16 15:14 Сейчас в теме
(9) Fox-trot, спасибо. Посмотрю, попробую разобраться.
+
8. Fox-trot 158 09.03.16 12:30 Сейчас в теме
если по-быстрому то мона так
1. netstat -n > list.txt
2. парсим list.txt на наличие локального ip и порта RDP
+
11. DWZ2 11.03.16 06:39 Сейчас в теме
(8) Fox-trot,

А если пользователей несколько? Как мы узнАем, какой IP из них наш?
+
12. nbv8608 1 28.12.16 04:22 Сейчас в теме
У себя сделал так, может кому пригодится:

&НаКлиенте
Процедура Команда1(Команда)
	 	WshShell = Новый COMОбъект("WScript.Shell");
	WshSysEnv = WshShell.Environment("Process");
	ИмяКомпьютера = WshSysEnv.Item("CLIENTNAME"); 
	АдресКомпьютера = ПолучитьIpАдресПКПоИмениХоста(ИмяКомпьютера);
КонецПроцедуры

&НаКлиенте
Функция ПолучитьIpАдресПКПоИмениХоста(АдресХоста) Экспорт 
    
   Результат = "127.0.0.0";
    oLoc = Новый COMОбъект("WbemScripting.SWbemLocator");
    oSrv = oLoc.ConnectServer(0,"/root/cimv2");
    ePng = oSrv.ExecQuery("SEL ECT * FR OM Win32_PingStatus WHERE Address = """ + АдресХоста + """");
    Для Каждого СтатусХоста из ePng Цикл 
        Результат = СтатусХоста.ProtocolAddress;
    КонецЦикла;
    
    Возврат Результат;
    
КонецФункции
Показать
Алексей_mir2mb; +1
14. androgin 02.10.18 15:55 Сейчас в теме
(12) Произошла исключительная ситуация (SWbemLocator): Сервер RPC недоступен
+
13. user882910 19.12.17 12:24 Сейчас в теме
Здравствуйте . Подскажите пожалуйста как можно определить ip удаленного рабочего стола . Тема така: мошенники звоня представляются, мол вы торговали на той то бирже ее счета арестовали хотим вернуть вам деньги просят установить программу AnyDesk . Вот хотелось бы подловить гадав. Может скрипт им какой.
+
15. пользователь 14.08.19 10:25
Сообщение было скрыто модератором.
...
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот