powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получение данных системного реестра через RDP
8 сообщений из 8, страница 1 из 1
Получение данных системного реестра через RDP
    #39874605
Fockewolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, необходимо получить данные системного реестра с локальной машины с удаленного рабочего стола (подключение по RDP). Доступ к подсети происходит через VPN, потом происходит подключение через RDP на виртуалку. Пробовал:

Код: c#
1.
2.
RegistryKey baseKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, machineName);            
RegistryKey key = baseKey.OpenSubKey(@"SOFTWARE\Microsoft\Cryptography");



В этом случае получаю исключение "System.IO.IOException: 'The network path was not found." Так же не могу с удаленного рабочего стола по имени пропинговать свой компьютер.

Пробовал еще так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
ManagementScope ms = new ManagementScope();
ms.Path.Server = machineName;
ms.Path.NamespacePath = "root\\default";            
ms.Options.EnablePrivileges = true;
ms.Connect();
ManagementClass mc = new ManagementClass("stdRegProv");
mc.Scope = ms;
ManagementBaseObject mbo;
mbo = mc.GetMethodParameters("EnumValues");
mbo.SetPropertyValue("sSubKeyName", @"SOFTWARE\Microsoft\Cryptography");
string[] subkeys = (string[])mc.InvokeMethod("EnumValues", mbo, null).Properties["sNames"].Value;

ManagementBaseObject mboS;
string keyValue = String.Empty;

foreach (string strKey in subkeys)
{
    if (strKey.Contains("MachineGuid"))
    {
       mboS = mc.GetMethodParameters("GetStringValue");
       mboS.SetPropertyValue("sSubKeyName", @"SOFTWARE\Microsoft\Cryptography");
       mboS.SetPropertyValue("sValueName", strKey);

       keyValue = mc.InvokeMethod("GetStringValue", mboS, null).Properties["sValue"].Value.ToString();
       return keyValue;
    }                
}


В этом случае получаю исключение при ms.Connect(): The RPC server is unavailable
Хотя службы работают и там и там.

Как можно достучаться до реестра на локальной машине? Интересует получение MachineGuid локальной машины, с которой я захожу по RDP.
...
Рейтинг: 0 / 0
Получение данных системного реестра через RDP
    #39874641
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По делу ничего не скажу, но, только это, по-моему, WMI а вовсе не RDP.
...
Рейтинг: 0 / 0
Получение данных системного реестра через RDP
    #39874660
Fockewolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WMI, я имел в виду. что код выполняется с машины, к которой я, как пользователь, подключаюсь по RDP
...
Рейтинг: 0 / 0
Получение данных системного реестра через RDP
    #39874944
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FockewolfВ этом случае получаю исключение "System.IO.IOException: 'The network path was not found." Так же не могу с удаленного рабочего стола по имени пропинговать свой компьютер.

Ничего удивительного
...
Рейтинг: 0 / 0
Получение данных системного реестра через RDP
    #39874999
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Fockewolf
Код: c#
1.
RegistryKey baseKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, machineName);            


FockewolfWMI, я имел в виду. что код выполняется с машины, к которой я, как пользователь, подключаюсь по RDP

В этом случае надо нe OpenRemoteBaseKey, а OpenBaseKey
...
Рейтинг: 0 / 0
Получение данных системного реестра через RDP
    #39875016
Fockewolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, задача в следующем. Как можно получить MachineID клиента, который подключился по RDP к удаленному рабочему столу? Нужно получить это с программного обеспечения , которое будет работать на сервере, куда подключаются клиенты. Не хранятся ли эти данные на сервере. Так как, насколько я понял, зачитать эти данные из системного реестра клиента будет проблематично: может быть включен Firewall, конечный пользователь не обладает правами на чтение реестра, могут быть не запущены службы RCP на клиентских машинах и т.д.
...
Рейтинг: 0 / 0
Получение данных системного реестра через RDP
    #39875049
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Fockewolf,

Для начала, как вообще можно получить информацию если

Fockewolfкоторое будет работать на сервере, куда подключаются клиенты.
...
может быть включен Firewall, конечный пользователь не обладает правами на чтение реестра, могут быть не запущены службы RCP на клиентских машинах и т.д.

На сервере запускается некая (написанная самостоятельно) служба, которая запускается под именем учетной записи, которой даны права локального админа на рабочих станциях сети. Подчеркиваю. Именно так, а не под правами администратора домена. Эта служба будет запрашивать информацию с рабочих станций, а пользователи через каких-то самостоятельно написанных клиентов будут только сообщать ей, что они хотят узнать.

Доменными глобальными политиками должны быть отключены всякие брандмауэры, включен удаленный реестр, разрешен DCOM, включено WMI.

Сетевики должны обеспечить доступ к клиентам по портам 135, 139, 445 по маршруту от сервера ко всем клиентским машинам. Не знаю как это делается, я просто озадачил сетевиков и они это сделали.

Теперь поднимаем на машинах WINRM

После этого у нас появляется возможность выполнять на удаленной машине любые команды и программы.

И вот, наконец, с помощью Process.Start выполняем там команду netstat -aon и смотрим, кто слушает порт
3389 . Если шаловливые админы не изменили дефолтный RDP-порт на какой-то другой то это решит проблему?

===============
А может Вам достаточно знать КТО подключился по RDP? Тогда настройку WINRM можно не делать. Данные об этом можно получить в удаленном реестре
...
Рейтинг: 0 / 0
Получение данных системного реестра через RDP
    #39875068
Fockewolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Спасибо большое за хороший ответ!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получение данных системного реестра через RDP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]