Active Directory
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Active Directory Expand / Collapse
Автор
Сообщение
06.05.2006 13:57
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 26.02.2008 8:38
Сообщ.: 10, Visits: 116
1. Как загрузить в список все компьютеры конкретного домена.
2. Как узнать какие из них включены (как в сетевом окружении).

Подскажите плз...
Сообщ. #896665
05.06.2006 17:32
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.04.2008 11:44
Сообщ.: 366, Visits: 2 473
LDAP спецом разработанный майкрософтом протокол для работы с доменом.
Сообщ. #898141
05.06.2006 18:41
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
babken76 (05.06.2006)
LDAP спецом разработанный майкрософтом протокол для работы с доменом.

При всем уважении к Microsoft совсем не она разработала протокол LDAP.
Сообщ. #898147
20.06.2006 16:28
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
случайно наткнулся на пример с NetServerEnum это по поводу п.2. насчет AD там все просто вроде бы. берешь и делаешь запрос с условием вроде "(objectClass=computer)"

public enum ServerTypeEnum
{
steNone = 0,
steWorkstation = 0x00000001,
steAll = 0x00000002,
steSQLServer = 0x00000004,
steDomainController = 0x00000008
}

[sysimport(dll="netapi32.dll")]
private static extern void
NetApiBufferFree([marshal(UnmanagedType.U4)]uint bufptr);

[sysimport(dll="netapi32.dll")]
unsafe private static extern uint
NetServerEnum([marshal(UnmanagedType.LPWStr)] string ServerName,
uint level,
[marshal(UnmanagedType.LPVoid)]uint* bufptr,
uint prefmaxlen,
ref uint entriesread,
ref uint totalentries,
uint servertype,
[marshal(UnmanagedType.LPWStr)] string domain,
uint resume_handle);

[System.Runtime.InteropServices.StructLayoutAttribute
(LayoutKind.Sequential, CharSet=CharSet.Auto)]
public struct SERVER_INFO_101
{
public int dwPlatformID;
public int lpszServerName;
public int dwVersionMajor;
public int dwVersionMinor;
public int dwType;
public int lpszComment;
}

protected void GetServers()
{
string servername = null;
string domain = "YourDomainName";
uint level = 101, prefmaxlen = 0xFFFFFFFF, entriesread = 0,
totalentries = 0, resume_handle = 0;

cboServers.Items.Clear();

unsafe
{
//get a pointer to the server info structure
SERVER_INFO_101* si = null;
SERVER_INFO_101* pTmp; //temp pointer for use when looping
//through returned (pointer) array

//this api requires a pointer to a byte array...
//which is actually a pointer to an array of SERVER_INFO_101
structures
//If the domain parameter is NULL, the primary domain is
implied.
uint nRes = NetServerEnum(servername, level,
(uint *) &si, prefmaxlen, ref entriesread, ref
totalentries,
(uint)_ServerType, domain, resume_handle);

if (nRes == 0)
{
if ((pTmp = si) != null) //assign the temp pointer
{
for (int i = 0; i < entriesread; i++) //loop through
the entries
{
try
{
//the lpszServerName member of the structure
contains a pointer to
//the server name string...marshal the pointer
from unmanaged
//memory to a managed string

cboServers.Items.Add(Marshal.PtrToStringAuto(pTmp->lpszServerName));
}
catch (Exception e)
{
MessageBox.Show(e.Message) ;
}
pTmp++; // increment the
pointer...essentially move to the next
// structure in the array
}
}
}
NetApiBufferFree((uint)si);
}
}

Сообщ. #899244
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Alexey Spirin

Время GMT +3:00, Сейчас 5:03