注册 登录
编程论坛 VB6论坛

ADO存取AD数据库

wube 发布于 2018-08-15 11:52, 2298 次点击
如何得知AD上的使用者的各项属性透过VB6使用ADO进行资料存取?
从MSDN或网路上取得的属性项目远比UI介面上的设置项还少太多了〜
还有要怎知道那些属性的定义是存放什么类型内容的资料?

只有本站会员才能查看附件,请 登录


SQL数据库看的到表和栏而AD数据库并无明确的表和栏的定义无从查起
7 回复
#2
wube2018-08-15 12:27
因为有使用者程式需求中有需要程式透过AD验证〜
所以需要在AD使用者内写入姓名+工号+职称+主管+部门+电话+信箱...等一堆东西〜
透过扫描枪扫条码后连线AD取得相关资料〜所以要先把AD使用者资料完善〜
后续才能继续做下去〜
#3
wube2018-08-15 19:34
上面问题大概找到了~换一个问题~

图案中画面红框冒号左边的属性型态该怎么定义?

只有本站会员才能查看附件,请 登录


或是下面这些结构型态该如何声明?(有些无法使用字符串型态)
程序代码:

Option Explicit

Public Type ADUserInfo
    objectClass As String
    distinguishedName As String
    instanceType As String
    whenCreated As String
    whenChanged As String
    uSNCreated As String
    memberOf As String
    uSNChanged As String
    iname As String
    objectGUID As String
    userAccountControl As String
    codePage As String
    countryCode As String
    badPasswordTime As String
    LastLogoff As String
    LastLogon As String
    pwdLastSet As String
    primaryGroupID As String
    objectSid As String
    accountExpires As String
    logonCount As String
    sAMAccountType As String
    objectCategory As String
    dSCorePropagationData As String
    lastLogonTimestamp As String
End Type

Public Type LDAPUserInfo
    cn As String 'FullName
    Detailed As ADUserInfo 'User Detailed Data
   
    '一般/General
    sn As String '姓氏 First name
    givenName As String '名字 Last name
    initials As String '英文缩写 Initials
    displayName As String '显示名称 Display name
    description As String '描述 description
   
    '地址/Address
    physicalDeliveryOfficeName As String '办公室 Office
    telephoneNumber As String '电话号码 Telephone Number
    mail As String '电子邮件 E-mail
    wWWHomePage As String '网页 Web page
    co As String '国家(地区) Country/region
    st As String '省份 State/province
    l As String '县/市 City
    streetAddress As String '街道 Street
    postalCode As String '邮递区号 Zip/Postal Code
    postOfficeBox As String '邮政信箱 P.O. Box
   
    '帐户/Account
    userPrincipalName As String '使用者登入名称 User logon name
    sAMAccountName As String '使用者登入名称(Windows 2000前版) User logonname(pre-Windows 2000)
   
    '设定档/Profile
    profilePath As String '设定档路径 Profile path
    scriptPath As String '登入指令档 Logon script
    homeDirectory As String '主资料夹 Home folder
   
    '电话/Telephones
    homePhone As String '住宅 Home
    pager As String '呼叫器 Pager
    mobile As String '行动电话 Mobile
    facsimileTelephoneNumber As String '传真 Fax
    ipPhone As String 'IP电话 IP phone
    info As String '注意事项 Notes
   
    '组织/Organization
    title As String '职称 Title
    EmployeeID As String '工号 EmployeeID
    department As String '部门 Department
    company As String '公司 Company
    manager As String '主管 Manager
    directReports As String '属下 Direct report
   
    'Others
    localeID As String '位置 Locale
    msRTCSIP_PrimaryUserAddress As String ' SipAddress
    objectSid As String ' SID
    Domain As String '网域 omain
End Type
#4
wube2018-08-15 19:40
抓出来有些都是乱码~但是MS服务器上的工具都能正常显示~
只有本站会员才能查看附件,请 登录
#5
wube2018-08-16 15:18
这些数据型态VB6都不支持~是有要引用什么外部元件或DLL吗?
#6
wube2018-08-17 20:22
终于完成了~土法炼钢~
#7
wube2018-08-20 18:23
纪录一下:前八个字为兩个字一組LSB,之后八个字为兩个字一組MSB

要获取ADExplorer可用的Octet字符串,请将这些步骤应用于GUID字符串:
首先使GUID大写:
F8D764FF-9A6A-418E-A641-B6F99661A8D5
将每个短划线分为五个部分:
F8D764FF, 9A6A, 418E, A641, B6F99661A8D5
将每个部分拆分为字节(每个两个十六进制数字):
{F8, D7, 64, FF}, {9A, 6A}, {41, 8E}, {A6, 41}, {B6, F9, 96, 61, A8, D5}
反转前三部分的字节:
{FF, 64, D7, F8}, {6A, 9A}, {8E, 41}, {A6, 41}, {B6, F9, 96, 61, A8, D5}
忽视分工:
FF, 64, D7, F8, 6A, 9A, 8E, 41, A6, 41, B6, F9, 96, 61, A8, D5
在每个字节前加一个反斜杠:
\FF, \64, \D7, \F8, \6A, \9A, \8E, \41, \A6, \41, \B6, \F9, \96, \61, \A8, \D5
连接字节:
\FF\64\D7\F8\6A\9A\8E\41\A6\41\B6\F9\96\61\A8\D5

[此贴子已经被作者于2018-8-20 18:46编辑过]

#8
wube2018-08-20 18:47
纪录一下:objectSid:

https://zh.
1