Я пытаюсь использовать LDAP, чтобы получить информацию о контроллерах домена и узнать о его статусе и статусе репликации с помощью C#. Я пытаюсь реализовать этот подход удаленно; например, я запускаю код на ПК1 и хотел бы узнать и получить информацию с ПК2.
Я знаю, что при использовании WMI можно получить информацию, используя следующие запросы:
Я знаю, что при использовании WMI можно получить информацию, используя следующие запросы:
р>
SELECT * FROM MSAD_DomainController
then
SELECT * FROM MSAD_ReplCursor where SourceDsaDN like '%{domainControllerName}%'
then
SELECT * FROM MSAD_ReplNeighbor where NamingContextDN like '{NamingContextDN->From above query}'
Что мне нужно, чтобы получить информацию, аналогичную запросу WMI, при использовании LDAP?
Я использую этот код, чтобы изучить детали контроллер домена
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
class Program
{
static void Main()
{
string domainname = {Domain};
string username = {User};
string password = {Pass};
try
{
// Using DirectoryEntry for LDAP operations
string ipAddress = {IP};
string ldapPath = $"LDAP://{ipAddress}:389/DC={domainname},DC=com";
using (DirectoryEntry entry = new DirectoryEntry(ldapPath, username, password, AuthenticationTypes.Secure))
{
using (DirectorySearcher searcher = new DirectorySearcher(entry))
{
searcher.Filter = "(objectClass=*)";
searcher.SearchScope = SearchScope.Subtree;
SearchResultCollection results = searcher.FindAll();
if (results.Count == 0)
{
Console.WriteLine("No objects found.");
}
else
{
foreach (SearchResult result in results)
{
Console.WriteLine("Object Information:");
if (result.Properties["objectClass"].Count > 0)
{
Console.Write($"Object Class: ");
foreach (var value in result.Properties["objectClass"])
{
Console.Write($"{value}, "); // Print each value
}
}
foreach (string propertyName in result.Properties.PropertyNames)
{
var propertyValues = result.Properties[propertyName];
if (propertyValues.Count > 0)
{
Console.Write($"{propertyName}: ");
foreach (var value in propertyValues)
{
Console.Write($"{value}, "); // Print each value
}
Console.WriteLine(); // New line after values
}
else
{
Console.WriteLine($"{propertyName}: Not Available or Empty");
}
}
Console.WriteLine("---------------------------------------------------");
}
}
}
}
}
catch (ActiveDirectoryObjectNotFoundException ex)
{
Console.WriteLine($"Error: {ex.Message} - Check domain name and connectivity.");
}
catch (ActiveDirectoryOperationException ex)
{
Console.WriteLine($"AD Operation Error: {ex.Message}");
}
catch (DirectoryServicesCOMException ex)
{
Console.WriteLine($"Directory Services Error: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"Unexpected Error: {ex.Message}");
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -status-us
Как получить информацию о контроллере домена, статусе и статусе репликации с помощью LDAP и C#? ⇐ C#
Место общения программистов C#
1727266868
Anonymous
Я пытаюсь использовать LDAP, чтобы получить информацию о контроллерах домена и узнать о его статусе и статусе репликации с помощью C#. Я пытаюсь реализовать этот подход удаленно; например, я запускаю код на ПК1 и хотел бы узнать и получить информацию с ПК2.
Я знаю, что при использовании WMI можно получить информацию, используя следующие запросы:
Я знаю, что при использовании WMI можно получить информацию, используя следующие запросы:
р>
SELECT * FROM MSAD_DomainController
then
SELECT * FROM MSAD_ReplCursor where SourceDsaDN like '%{domainControllerName}%'
then
SELECT * FROM MSAD_ReplNeighbor where NamingContextDN like '{NamingContextDN->From above query}'
Что мне нужно, чтобы получить информацию, аналогичную запросу WMI, при использовании LDAP?
Я использую этот код, чтобы изучить детали контроллер домена
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
class Program
{
static void Main()
{
string domainname = {Domain};
string username = {User};
string password = {Pass};
try
{
// Using DirectoryEntry for LDAP operations
string ipAddress = {IP};
string ldapPath = $"LDAP://{ipAddress}:389/DC={domainname},DC=com";
using (DirectoryEntry entry = new DirectoryEntry(ldapPath, username, password, AuthenticationTypes.Secure))
{
using (DirectorySearcher searcher = new DirectorySearcher(entry))
{
searcher.Filter = "(objectClass=*)";
searcher.SearchScope = SearchScope.Subtree;
SearchResultCollection results = searcher.FindAll();
if (results.Count == 0)
{
Console.WriteLine("No objects found.");
}
else
{
foreach (SearchResult result in results)
{
Console.WriteLine("Object Information:");
if (result.Properties["objectClass"].Count > 0)
{
Console.Write($"Object Class: ");
foreach (var value in result.Properties["objectClass"])
{
Console.Write($"{value}, "); // Print each value
}
}
foreach (string propertyName in result.Properties.PropertyNames)
{
var propertyValues = result.Properties[propertyName];
if (propertyValues.Count > 0)
{
Console.Write($"{propertyName}: ");
foreach (var value in propertyValues)
{
Console.Write($"{value}, "); // Print each value
}
Console.WriteLine(); // New line after values
}
else
{
Console.WriteLine($"{propertyName}: Not Available or Empty");
}
}
Console.WriteLine("---------------------------------------------------");
}
}
}
}
}
catch (ActiveDirectoryObjectNotFoundException ex)
{
Console.WriteLine($"Error: {ex.Message} - Check domain name and connectivity.");
}
catch (ActiveDirectoryOperationException ex)
{
Console.WriteLine($"AD Operation Error: {ex.Message}");
}
catch (DirectoryServicesCOMException ex)
{
Console.WriteLine($"Directory Services Error: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"Unexpected Error: {ex.Message}");
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79022866/how-to-get-information-about-domain-controller-status-and-replication-status-us[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия