NetServerEnum: список серверов в домене, в то время как в рабочей группе - PullRequest
0 голосов
/ 01 марта 2010

Я вошел в рабочую группу MSHOME и мне нужен доступ к именованному списку серверных компьютеров в домене "xxx.local".

Я пробовал это:

        const int MAX_PREFERRED_LENGTH = -1;
        int SV_TYPE_WORKSTATION = 1;
        int SV_TYPE_SERVER = 2;
        IntPtr buffer = IntPtr.Zero;
        IntPtr tmpBuffer = IntPtr.Zero;
        int entriesRead = 0;
        int totalEntries = 0;
        int resHandle = 0;
        int sizeofINFO = Marshal.SizeOf(typeof(_SERVER_INFO_100));

        int ret = NetServerEnum(null, 100, ref buffer, MAX_PREFERRED_LENGTH,
            out entriesRead, out totalEntries, SV_TYPE_WORKSTATION | SV_TYPE_SERVER,
            "xxx.local", out resHandle);

... но получить возвращаемое значение 6118 (серверы браузера не найдены). Это также происходит, когда я делаю "xxx.local" ноль, который должен по крайней мере вернуть 1 сервер (мой собственный компьютер) ??

1 Ответ

0 голосов
/ 02 марта 2010

ОК, понял, кажется:

int ret = NetServerEnum (ноль, 100, ссылка на буфер, MAX_PREFERRED_LENGTH, из записейЧитать, из общего количества записей, SV_TYPE_WORKSTATION | SV_TYPE_SERVER, "xxx.local", out resHandle);

... это правильное использование для доступа к списку компьютеров в другом домене или рабочей группе. xxx.local как доменное имя ничего не вернул, однако xxx вернул то, что мне было нужно. Вы также можете проверить с помощью net view / domain: xxx в командной строке.

...