определить контроллер домена

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
mshak
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 29.01.2008 (Вт) 14:17

определить контроллер домена

Сообщение mshak » 06.10.2009 (Вт) 21:24

Добрый день. прошу заранее прощение, если буду некорректно излагать свою мысль.
Имеется компьютер, находящийся в домене. как можно программно определить имя домена и как можно определить залогинен локальный пользователь или доменный? т.к. предполагается что программа будет запускаться в различных сетях, с различной структурой.
нужно для использования с winApi
Код: Выделить всё
Private Declare Function NetUserGetInfo Lib "netapi32" (ByVal servername As String, ByVal UserName As String, ByVal level As Long, bufptr As Long) As Long

в качестве первого параметра. Имя пользователя получаю с помощью
Код: Выделить всё
Private Declare Function GetUserNameW Lib "advapi32.dll" (lpBuffer As Byte, nSize As Long) As Long

--------------------
мучался долго.. ... в итоге нашел след способ:
Код: Выделить всё
    Dim wshNet As WshNetwork
    Dim strDomain As String
    Set wshNet = CreateObject("WScript.Network")
    strDomain = wshNet.UserDomain
    Label3.Caption = strDomain


а через WinApi никто не знает как сделать?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: определить контроллер домена

Сообщение Viper » 07.10.2009 (Ср) 6:16

Определить контроллер домена можно, например, при помощи функции NetServerEnum.
З.Ы. Где-то на форуме я помнится некоторое время назад выкладывал модуль для работы с сетью. Можно попробовать поискать.
Весь мир матрица, а мы в нем потоки байтов!

mshak
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 29.01.2008 (Вт) 14:17

Re: определить контроллер домена

Сообщение mshak » 07.10.2009 (Ср) 11:03

возникла еще одна проблема... получаю я контроллер домена при помощи NetGetDCName
и если вызывать
Код: Выделить всё
    ret = NetUserGetInfo(StrConv(strServer, vbUnicode), StrConv(strUserName, vbUnicode), 3, lpBuf)

где strServer - адрес контроллера домена (допустим для примера "\\server"
а strUserName="testUser"
то в структуре UserInfo, определяется как
Dim UserInfo As USER_INFO_3
а потом в нее заношу через
Call MoveMemory(UserInfo, ByVal lpBuf, Len(UserInfo))
то UserInfo.Privilege равняется USER_PRIV_USER хотя пользователь добавлен в локальную группу администраторов.
как можно узнать что он действительно в группе локальных администраторов?
если вызывать NetUserGetInfo с первым параметром "" то возвращается ошибка что пользователь не найден.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Bing-бот и гости: 100

    TopList