中核集团是什么级别| 斯德哥尔摩综合症是什么| 胀气是什么症状| 什么中药可以减肥| 大什么大什么| 指甲变黄是什么原因| 三奇贵人是什么意思| 失聪是什么原因造成的| 暮春是什么时候| 恩客是什么意思| 做照影是检查什么| 和女生聊天聊什么| 罗飞鱼是什么鱼| 5月9号是什么星座| 1955年是什么年| 疥疮是什么| 梦见钱包丢了是什么意思| 经常打哈欠是什么原因| 迪奥口红属于什么档次| 他达拉非是什么药| 乌鸡蛋是什么颜色| 实字五行属什么| 什么菜炒肉好吃| 牛皮癣用什么药膏最好| 鱼油是什么| 体面什么意思| 次日什么意思| 热痱子是什么原因引起的| 下身有点刺痛什么原因| 梦见搞卫生什么意思| 做什么生意| 教师编制是什么意思| 夕阳无限好只是近黄昏是什么意思| 人造海蜇丝是什么做的| 26岁属什么| 信手拈来是什么意思| 滋阴补肾是什么意思| 任性什么意思| 蓝莓吃了有什么好处| 7.2是什么星座| 什么炒肉好吃| 牙疼吃什么消炎药| 拉屎是绿色的是什么原因| 嫡传弟子是什么意思| 佞臣什么意思| 什么木头做菜板好| 轻生什么意思| 有偿是什么意思| 脸过敏要注意什么| 胸痛是什么原因| 皮肤干燥缺什么维生素| 炎细胞浸润是什么意思| 吃什么能让月经快点来| 米田共是什么意思| 牡丹花什么季节开| 肾疼挂什么科| 一直不射精是什么原因| 正团级是什么军衔| 建日是什么意思| 微信屏蔽是什么意思| 垂涎欲滴意思是什么| 石英机芯什么意思| 止盈什么意思| aimee是什么意思| 猪肚炖什么| 孬种是什么意思| 虎配什么生肖最好| 暴饮暴食容易得什么病| 为什么头皮会疼| annie英文名什么意思| 白细胞计数高是什么原因| 华妃娘娘是什么电视剧| 肆无忌惮是什么意思| 心率失常是什么意思| 阴性和阳性是什么意思| 右胸痛什么原因| 太岁是什么东西| no是什么气体| 榴莲为什么那么臭| 什么是尿蛋白| 硬卧代硬座是什么意思| 深耕是什么意思| 智商高是什么意思| ki是什么意思| 梦到掉牙齿是什么预兆| 乳腺4a类是什么意思| 孙楠留什么给你| 医院康复科是干什么的| 兔死狗烹是什么意思| 补钙什么时间段最好| tod是什么| 骨折后吃什么好的快| 喉咙痛鼻塞吃什么药| 心身医学科是看什么病| 棺材用什么木材做最好| 青柑是什么| 肚子疼吃什么药好| 瓜子脸配什么发型好看| 什么的绽放| 长生不老是什么意思| 梦见自己死了又活了是什么意思| 虫字旁的字和什么有关| 天团是什么意思| 五月二十号是什么星座| 不解什么什么| 77年的蛇是什么命| 秦二世为什么姓胡| 痛风发作期吃什么药| 屁股右边痛是什么原因| 欣字取名什么寓意| 碘缺乏会导致什么疾病| 孤辰寡宿是什么意思| 龙骨为什么比排骨便宜| 76年属什么的生肖| 一什么金光| ctp是什么意思| 经前期综合症吃什么药| cheblo空调是什么牌子| 网易是什么| 坚贞不渝是什么意思| 宝宝满周岁送什么礼物| 宫颈肥大是什么原因造成的| 家五行属性是什么| 恩五行属什么| 柬埔寨有什么特产| 磨牙是什么原因| 男人身体虚吃什么补| 干事是什么意思| 破财免灾什么意思| 兰花长什么样| 顺风顺水什么意思| 屎忽鬼是什么意思| 老是感冒是什么原因| 眼睑炎用什么药效果好| 蓝蓝的天上白云飘是什么歌| 今年54岁属什么生肖| 女大十八变是什么意思| 身体年龄是什么意思| 辰砂和朱砂有什么区别| 李白属什么生肖的| 河粉是什么材料做的| 三文鱼长什么样| pass掉是什么意思| 作息是什么意思| 为道日损什么意思| 老年人口干是什么原因| 清炖排骨汤放什么调料| 宫保鸡丁是什么菜系| 娥皇女英是什么意思| 幼儿牙齿黑是什么原因| 印度属于什么亚| 不到长城非好汉的下一句是什么| 牙痛安又叫什么| 心衰竭是什么病严重吗| 办电话卡需要什么| nc是什么意思| 花名是什么意思| pornhub是什么| 微尘是什么意思| 五十八岁属什么生肖| 厉兵秣马是什么意思| 想吐是什么原因| 富氢水是什么| 什么是半月板| 献血有什么危害| 直肠腺瘤是什么| 猪笼入水是什么意思| 1991年什么命| 不畏将来不念过往什么意思| 月经期不能吃什么| 早上起床头晕是什么原因| 脚上长鸡眼去医院挂什么科| 牙疼不能吃什么| 金骏眉是什么茶| 大学辅导员是干什么的| 什么人不适合去高原| 贲门炎吃什么药| 尿胆原阳性是什么病| cg什么意思| 超市理货员是做什么的| phicomm是什么牌子| 什么空调省电| 描述是什么意思| 老花眼有什么办法可以恢复| 泰州有什么好玩的地方| 过期的钙片有什么用途| 什么泡水喝对肝脏好| 指甲盖上有竖纹是什么原因| 色盲是什么意思| 什么叫靶向药| 甲鱼和什么食物相克| 终其一生下一句是什么| 双鱼座是什么象星座| 速战速决的意思是什么| 跳蛋什么感觉| la是什么品牌| 思量是什么意思| 痰饮是什么意思| 什么属相不能摆放大象| 吃白糖有什么好处和坏处| 首战告捷什么意思| 梦见掉牙齿是什么意思| 律动是什么意思| 汪峰是什么星座| nfl是什么意思| dears是什么意思| 身上长白点是什么原因| 深褐色是什么颜色| 腱鞘炎看什么科| 梦见自己找工作是什么意思| 什么是肺部磨玻璃结节| 克霉唑为什么4天一次| 涉三什么意思| 做梦梦到别人死了是什么征兆| 看头发挂什么科| 杂酱面用什么面| 点完痣要注意什么| 夕火念什么| 什么是主动脉夹层| 避孕套有什么作用| 为什么游戏| 左脚大拇指麻木是什么原因| 江诗丹顿属于什么档次| 四月二十六是什么星座| 金刚钻是什么意思| 瞳孔放大意味着什么| 痰栓是什么意思| 梦见拖地是什么意思| 斑是什么原因造成的| 胃灼热烧心吃什么药| 市盈率是什么意思| 心累是什么意思| 低密度脂蛋白胆固醇是什么意思| 什么叫比例| ygk是什么牌子| 疝气是什么症状| 皮肤发黑是什么原因引起的| 羊水偏多对胎儿有什么影响| 铁马是什么| 什么是抗性淀粉| 孙权字什么| 宫颈液基细胞学检查是什么| noah是什么牌子| 老人经常便秘有什么好办法| 垂问是什么意思| 尾牙是什么意思| 错构瘤是什么意思| 结扎什么意思| shipped是什么意思| swan什么意思| 2000年属什么生肖| 白色配什么颜色好看| 建兰什么时候开花| 耳垂上有痣代表什么| 蒸馒头用什么面粉| 狮子是什么生肖| 珠光宝气是什么生肖| 吃生姜对身体有什么好处| 鼻子下面长痘痘是什么原因引起的| 龙筋是什么| 舌头发白吃什么药好| 轶事是什么意思| 1967属什么生肖| 混纺棉是什么面料| 百度跳转到内容

如果是什么意思

本页使用了标题或全文手工转换
维基百科,自由的百科全书
百度 《生命时报》:说完了不同季节如何喝茶,那么对于不同人群,喝茶又有哪些讲究?蔡炳勤:我建议老年人多喝绿茶。

Active Directory Service Interface (ADSI) 是一组植基于 COM 技术上的应用程序开发接口,程序开发人员可以利用这些接口来连接并访问 Active Directory,并执行查询,更新或删除等管理功能,ADSI同时可支持以LDAP(轻量级目录访问协议)为主的目录服务(例如Novell Directory Service),以及以 Windows NT 网域为主所组成的 WinNT 网域目录。

接口结构

[编辑]

ADSI 由 COM 以及原生函数库所组成,并封装在 activeds.dll 文件中,部分则被封装在 advaip32.dll 中,以 COM 原生接口方式呈现,以提供给 C/C++ 编程语言透过 COM 接口来取用,不过由于所有的原生接口均支持 COM Automation,因此 Visual Basic 或是 .NET Framework 的语言也可以利用 COM Interop 能力访问 ADSI 中的接口。

原生接口 (Native interfaces)

[编辑]

activeds.dll 中封装了几个 ADSI 中最核心的接口:

  • IADs:作为所有 Active Directory 对象最顶层的接口,拥有最基础的功能,
  • IADsContainer:作为所有可收纳 Active Directory 对象的收纳器 (Container) 最顶层的接口,具有收纳器的基础功能。
  • IADsOpenDSObject:连接 Active Directory 之用(它只有 OpenDSObject() 一个方法),同时它会缓存住用来连接的安全信息内容。
  • IADsNamespace:由目录服务提供者 (directory service provider) 提供,用来识别目录结构的命名空间之用。

activeds.dll 亦提供了几个依对象不同而实现的接口,像是:

  • IADsComputer:提供目录服务中的电脑 (computer) 对象。
  • IADsDomain:提供目录服务中的网域 (domain) 对象。
  • IADsUser:提供目录服务中的用户 (user) 对象。
  • IADsGroup:提供目录服务中的用户组 (group) 对象。
  • IADsOU:提供目录服务中的组织单元 (organization unit) 对象。
  • IADsCollection:提供目录服务对象集合。

在使用 ADSI 之时,有时会需要一些工具型功能,像是 DOMAIN\user 和 User Principal Name 间的转换,或是获取系统信息等,ADSI 也提供了这类的接口:

  • IADsNameTranslate:在目录服务中在不同的名称间转换。
  • IADsWinNTSystemInfo:在目录服务中获取 Windows NT Directory Service 系统信息。
  • IADsADSystemInfo:在目录服务中获取 LDAP Directory Service 系统信息。
  • IADsPathname:剖析 X.500 名称与路径。

这些接口多是使用 C/C++ 编程语言来访问,若是使用 VB 或是 Scripting Language 时,则可以使用另外的方法来访问。

' Get user object from Active Directory.
Dim mach As IADsContainer
Dim usr as IADsUser

On Error GoTo Cleanup
Set mach = GetObject("WinNT://MyMachine,Computer")
Set usr = mach.Create("user","jeffsmith")
usr.SetInfo

Cleanup:
    If(Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set mach = Nothing
    Set usr = Nothing
// binding Active Directory using C++ and native interface.
IADs *pObject;
HRESULT hr;

// Initialize COM.
CoInitialize(NULL);

hr = ADsGetObject(L"LDAP://CN=jeffsmith,DC=fabrikam,DC=com", 
        IID_IADs,
        (void**) &pObject);
if(SUCCEEDED(hr))
{
    // Use the object.

    // Release the object.
    pObject->Release()
}

// Uninitialize COM.
CoUninitialize();

函数

[编辑]

ADSI 除了接口以外,也将部分功能使用函数方式显露,以简化调用原生接口需要处理的工作,较重要且经常被使用的有:

  • ADsOpenDSObject(),封装获取 IADs 或 IADsContainer 等对象的工作。
  • ADsGetObject(),封装利用已开启的 Active Directory Session 获取对象的工作。
  • ADsGetLastError(),获取在 ADSI 作业中,最后一个引发的错误。
  • AllocADsMem(), FreeADsMem(), AllocADsStr(), FreeADsStr(),配置与释放 ADSI 使用的资源。
  • ADsBuildEnumerator(), ADsEnumerateNext(), ADsFreeEnumerator():处理 ADSI 对象的枚举工作。

下列的例子,是使用 ADsOpenDSObject() 获取 IADs 对象的示例代码:

IADs *pObject;
LPWSTR szUsername = NULL;
LPWSTR szPassword = NULL
HRESULT hr;

// Insert code to securely retrieve the username and password.

hr = ADsOpenObject(L"LDAP://CN=Jeff,DC=Fabrikam,DC=com",
                   "jeffsmith",
                   "etercespot",
                   ADS_SECURE_AUTHENTICATION, 
                   IID_IADs,
                   (void**) &pObject);

.NET Framework 原生接口

[编辑]

.NET Framework 中,另外提供了一个 .NET 专用的 ADSI 接口程序库 System.DirectoryService.dll,程序开发人员可以加入此程序库的参考来获取 ADSI 的功能,在这个原生类别库中,封装了两个类别,作为访问 Active Directory 的入口之用。

  • DirectoryEntry:此类别封装了 IADs 以及 IADsContainer 等原生接口,用来访问 Active Directory 的对象资料,以及 Schema 封装的信息等等。
  • DirectorySearcher:此类别封装了 IDirectorySearch 接口,作为搜索 Active Directory 的主要工具,并使用 SearchResult 对象封装搜索结果,让 .NET 开发人员可以简化处理搜索结果的工作。

截至 .NET Framework 3.5 为止,ADSI 在 Managed Class Library 中有四个命名空间:

  • System.DirectoryServices:原生的 ADSI Managed 接口,封装 DirectoryEntry 和 DirectorySearcher 与工具类别。
  • System.DirectoryServices.AccountManagement:封装对 IADsUser, IADsComputer, IADsGroup 等接口,简化处理对象的工具。
  • System.DirectoryServices.ActiveDirectory:封装对 Active Directory 结构对象的工具。
  • System.DirectoryServices.Protocol:封装对 LDAP 协议与目录服务通信的工具与基类。

下列为使用 C# 访问 DirectoryEntry 的示例代码:

DirectoryEntry ent = new DirectoryEntry();
DirectoryEntry ou = ent.Children.Find("OU=Consulting");

// Use the Add method to add a user to an organizational unit.
DirectoryEntry usr = ou.Children.Add("CN=New User","user");
// Set the samAccountName, then commit changes to the directory.
usr.Properties["samAccountName"].Value = "newuser"; 
usr.CommitChanges();

目录服务提供者 (directory service provider)

[编辑]

ADSI 因为是使用了 LDAP 以及开放式目录等标准,因此只要目录服务的平台是以开放式目录标准实现 IADsNamespace 与其他目录服务提供者接口时,即可由 ADSI 来支持,目前 ADSI 有五种提供者:

  • ADSI LDAP Provider:Active Directory 官方主要的支持接口,连接字符串使用 LDAP:// 为主。
  • ADSI WinNT Provider:以 Windows NT 为主的支持接口,连接字符串使用 WinNT:// 为主。
  • ADSI NDS Provider:支持 Novell Directory Service,连接字符串使用 NDS:// 为主。
  • ADSI NWCOMPAT Provider:支持 Novell Netware 3.x 的网络服务,连接字符串使用 NWCOMPAT:// 为主。
  • ADSI IIS Provider:支持 IIS 内部的提供者,连接字符串以 IIS:// 为主,用于访问 IIS Metabase。

OLE DB Provider for Directory Services

[编辑]

除了 ADSI 原生接口外,微软也为了 SQL Server 或是 ADO 应用程序开发人员发展了可使用 ADO 来访问 Active Directory 的驱动程序,此驱动程序使用 OLE DB 来开发,并且使用类似 SQL 指令的方式来访问 Active Directory,此驱动程序称为 OLE DB Provider for Directory Service,其 COM 的 Prog ID 为 ADsDSOObject

下例为使用 ADO 访问 Active Directory 的示例代码:

Dim Con As New Connection
Dim rs As New Recordset
Dim command As New Command
Dim usr As IADsUser

' Replace department for all users in OU=sales.
Set con = Server.CreateObject("ADODB.Connection")
con.Provider = "ADsDSOObject"
 
Set command = CreateObject("ADODB.Command")
Set command.ActiveConnection = con
 
command.CommandText = "SELECT AdsPath, cn FROM 'LDAP://OU=Sales,DC=Fabrikam,DC=com' WHERE objectClass = 'user'"
 
command.Properties("searchscope") = ADS_SCOPE_ONELEVEL
Set rs = command.Execute
While Not rs.EOF
    Set usr = GetObject(rs.Fields("AdsPath").Value)
    usr.Put "department", "1001"
    usr.SetInfo
    rs.MoveNext
Wend

下列指令为使用 SQL Server 查询来合并访问 Active Directory 的脚本[1]

-- create a linked server to active directory interface
EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 'ADSDSOObject', 'adsdatasource' 

-- configure SQL Server to allow ad-hoc query and openquery statement.
EXEC sp_configure 'show advanced options', 1
reconfigure with override

EXEC sp_configure 'Ad Hoc Distributed Queries', 1 
reconfigure 

-- execute query via OpenQuery() statement
SELECT * FROM OpenQuery(ADSI, 'SELECT * FROM ''LDAP://DC=kodyaz,DC=com'' WHERE objectCategory=''user'' ') 

SELECT * FROM OpenQuery(ADSI, 'SELECT mail, displayName, userPrincipalName FROM ''LDAP://DC=kodyaz,DC=com'' WHERE objectCategory=''user'' ')

开发 Directory-Enabled 应用程序时可用的工具

[编辑]

由于 ADSI 和 Active Directory 的特性,开发人员若没有使用适当的工具时,很难发展与目录服务链接 (directory-enabled) 的应用程序,因此微软为 Active Directory 提供了两种工具:

  • Active Directory Explorer:由 Sysinternals 团队所开发[2],现已并入 Microsoft TechNet 团队中,可用来浏览 AD 网域或树系的 LDAP 层次结构字符串,以及对象的属性资料。
  • ADSIEdit:在 Windows 2000 和 Windows Server 2003 时,由 Resource Kit Support Tools 安装包提供,到了 Windows Server 2008 时,则内置在系统中[3]

参考资料

[编辑]

内容参考:

  1. ^ Running Active Directory Services Queries Using MS SQL Server OPENQUERY Command. [2025-08-06]. (原始内容存档于2025-08-06). 
  2. ^ AD Explorer. [2025-08-06]. (原始内容存档于2025-08-06). 
  3. ^ Adsiedit Overview: Active Directory. [2025-08-06]. (原始内容存档于2025-08-06). 

文章参考:

  1. MSDN Library: Active Directory Service Interface页面存档备份,存于互联网档案馆
  2. Directory Service in .NET Framework页面存档备份,存于互联网档案馆
1958年是什么年 脂肪肝吃什么食物好 月经总是提前是什么原因 1月19号什么星座 胃火喝什么茶降火
仲夏是什么意思 小ck属于什么档次 经期吃什么水果比较好 桂林有什么好玩的景点 义眼是什么
大便不通吃什么药 什么是阑尾炎 10月12是什么星座 5月20日是什么日子 属猴的幸运色是什么颜色
朱砂属于五行属什么 属兔带什么招财 ck属于什么档次的品牌 查摆是什么意思 脚后筋疼是什么原因引起的
大修基金什么时候缴纳hcv7jop6ns3r.cn 5月28号是什么日子hcv8jop5ns0r.cn 河粉是什么材料做的hcv7jop9ns2r.cn 描红是什么意思hcv9jop6ns5r.cn 血压高吃什么药bysq.com
你为什么不快乐hcv9jop3ns1r.cn lake是什么意思hcv9jop2ns6r.cn 艺高胆大是什么生肖hcv8jop2ns0r.cn 为什么胸闷一吃丹参滴丸就好xinjiangjialails.com 仓鼠可以吃什么水果hcv7jop7ns0r.cn
战五渣是什么意思hcv9jop6ns6r.cn 补血吃什么药最快最好hcv9jop3ns8r.cn 为什么不能摸猫的肚子hcv9jop3ns4r.cn psh是什么意思hcv8jop9ns7r.cn 头发油腻是什么原因hcv9jop6ns2r.cn
怀孕掉头发厉害是什么原因hcv8jop1ns8r.cn 为什么招蚊子hcv8jop5ns7r.cn 智齿是什么hcv8jop3ns2r.cn 经常上火口腔溃疡是什么原因hcv9jop1ns6r.cn 什么叫体制内hcv8jop7ns7r.cn
百度