VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 2394|回复: 2

[求助] 最近需要搞个域资料帐号同步,网上找了一周了。也没找到

[复制链接]
发表于 2015-4-24 19:05:45 | 显示全部楼层 |阅读模式
100金钱
最近需要搞个域资料帐号同步,网上找了一周了。也没找到相关资料和代码
谁有代码处理域的帐号和组织,新增,修改和删除的。希望能共享一下。
我没什么,只有分~和论坛币

 楼主| 发表于 2015-4-27 08:17:39 | 显示全部楼层
使用 VBScript 和 ADSI
ADSI 可以使支持目录的应用程序的开发工作更加轻松。您可以使用 VBScript 或 Microsoft JScript® 开发软件编写脚本以执行批量目录操作(与 Windows Script Host 一起使用)。在本指南中,使用 VBScript 编写的简单应用程序执行上一节描述的过程(它使用的是 LDIF)。
注 意,这些脚本不包括任何错误检查,这意味着它们不提供 VBScript 和 ADSI 程序员参考。此处包含的所有示例都假设:您使用正确的凭据登录到作为目标域成员的计算机上。在 ADSI 中,可以明确指定凭据和目标域。完成每个过程后,请检查“Active Directory 用户和计算机”管理单元,确认条目已修改。
导出对象
本示例中使用文本编辑器(如“记事本”)来创建 VBScript 程序。该脚本搜索“Marketing”OU 并创建一个文本文件,该文件中将列出所有用户对象及其属性子集。
创建并执行导出脚本
1.        单击“开始”按钮,单击“运行”,键入“Notepad export.vbs”,然后单击“确定”。在出现相应提示时,单击“是”创建新的文件。将以下文本复制到“export.vbs”中。
'Global variables
    Dim oContainer
    Dim OutPutFile
    Dim FileSystem
'Initialize global variables
    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.CreateTextFile("marketing.txt", True)
    Set oContainer=GetObject("LDAP://OU=Marketing,OU=Accounts,DC=contoso,DC=com")
'Enumerate Container
    EnumerateUsers oContainer
'Clean up
    OutPutFile.Close
    Set FileSystem = Nothing
    Set oContainer = Nothing
    WScript.Echo "Finished"
    WScript.Quit(0)
Sub EnumerateUsers(oCont)
    Dim oUser
    For Each oUser In oCont
        Select Case LCase(oUser.Class)
               Case "user"
                    If Not IsEmpty(oUser.distinguishedName) Then
                       OutPutFile.WriteLine "dn: " & oUser.distinguishedName
                    End If
                    If Not IsEmpty(oUser.name) Then
                       OutPutFile.WriteLine "name: " & oUser.Get ("name")
                    End If
                    If Not IsEmpty(oUser.streetAddress) Then
                       OutPutFile.WriteLine "streetAddress: " & oUser.streetAddress
                    End If
                    If Not IsEmpty(oUser.l) Then
                       OutPutFile.WriteLine "l: " & oUser.l
                    End If
                    If Not IsEmpty(oUser.st) Then
                       OutPutFile.WriteLine "st: " & oUser.st
                    End If
                    If Not IsEmpty(oUser.postalcode) Then
                       OutPutFile.WriteLine "postalcode: " & oUser.postalcode
                    End If
               Case "organizationalunit", "container"
                    EnumerateUsers oUser
        End Select
        OutPutFile.WriteLine
    Next
End Sub
2.        保存“export.vbs”,然后关闭“记事本”。
3.        在“命令提示符”窗口中,键入“export.vbs”,然后按“Enter”键。
注意:执行 export.vbs 操作可创建 Marketing.txt 文件,该文件包含用户及其属性子集的列表。
在 进行适当的修改后,该脚本就可以与支持 Microsoft 组件对象模型 (COM) 和 Visual Basic 技术的任何应用程序一起使用了。这些应用程序包括 Visual Basic、Excel 以及 Microsoft Access。Internet Explorer 和 Internet 信息服务也支持脚本。
修改对象
在本示例中,将更改“Marketing”OU 内的所有用户地址属性。可使用简单的 VBScript 程序,对“Marketing”组织中的所有用户对象进行批量修改。该脚本修改省/自治区、街道、县/市以及邮政编码属性。
创建并执行修改对象脚本
1.        单击“开始”按钮,单击“运行”,键入“Notepad modify.vbs”,然后单击“确定”。在出现相应提示时,单击“是”创建新的文件。将以下文本复制到“modify.vbs”中。
Dim oContainer
    Set oContainer=GetObject("LDAP://OU=Marketing,OU=Accounts,DC=contoso,DC=com")
ModifyUsers oContainer
'cleanup
    Set oContainer = Nothing
    WScript.Echo "Finished"
    WScript.Quit
Sub ModifyUsers(oObject)
    Dim oUser
    oObject.Filter = Array("user")
    For Each oUser in oObject
        oUser.Put "st","Washington"
        oUser.Put "streetAddress","One Microsoft Way"
        oUser.Put "postalCode","98052"
        oUser.Put "l","Redmond"
        oUser.SetInfo
    Next
End Sub
2.        保存“modify.vbs”,然后关闭“记事本”。
3.        在“命令提示符”窗口中,键入“modify.vbs”,然后按“Enter”键。
创建和删除对象
本示例中使用 VBScript 将新用户添加到“Marketing”组织中。该示例说明可以使用 ADSI 和 VBScript 非常方便地以编程方式访问目录。注意,在本示例中,在用户创建期间只配置了一组有限的属性。
创建并执行对象创建脚本
1.        单击“开始”按钮,单击“运行”,键入“Notepad add.vbs”,然后单击“确定”。在出现相应提示时,单击“是”创建新的文件。将以下文本复制到“add.vbs”中。
Dim oContainer
Dim oUser
Set oContainer=GetObject("LDAP://OU=Marketing,OU=Accounts,DC=contoso,DC=com")
'Create user
        Set oUser = oContainer.Create("User","CN=Pilar Ackerman")
'Assign values to user attributes
        oUser.Put "samAccountName","Pilar"
        oUser.Put "givenName","Pilar"
        oUser.Put "sn","Ackerman"
        oUser.Put "userPrincipalName","pilar@contoso.com"
        oUser.SetInfo
'Clean up
Set oUser = Nothing
Set oContainer = Nothing
WScript.Echo "Finished"
WScript.Quit
2.        保存“add.vbs”,然后关闭“记事本”。
3.        在“命令提示符”窗口中,键入“add.vbs”,然后按“Enter”键。
创建并执行对象删除脚本
1.        单击“开始”按钮,单击“运行”,键入“Notepad delete.vbs”,然后单击“确定”。在出现相应提示时,单击“是”创建新的文件。将以下文本复制到“delete.vbs”中。
Dim oContainer
    Set oContainer=GetObject("LDAP://OU=Marketing,OU=Accounts,DC=contoso,DC=com")
'Delete user
    oContainer.Delete "user","CN=Pilar Ackerman"
'Clean up
Set oContainer = Nothing
WScript.Echo "Finished"
WScript.Quit
2.        保存“delete.vbs”,然后关闭“记事本”。
3.        在“命令提示符”窗口中,键入“delete.vbs”,然后按“Enter”键。

“常规”标签
姓 Sn
名 Givename
英文缩写 Initials
显示名称 displayName
描述 Description
办公室 physicalDeliveryOfficeName
电话号码 telephoneNumber
电话号码:其它 otherTelephone 多个以英文分号分隔
电子邮件 Mail
网页 wWWHomePage
网页:其它 url 多个以英文分号分隔

“地址”标签
国家/地区 C 如:中国CN,英国GB
省/自治区 St
市/县 L
街道 streetAddress
邮政信箱 postOfficeBox
邮政编码 postalCode
 
“帐户”标签
用户登录名 userPrincipalName 形如:javazeke@qq.com
用户登录名(以前版本) sAMAccountName 形如:S1
登录时间 logonHours
登录到 userWorkstations 多个以英文逗号分隔
用户帐户控制 userAccountControl (启用:512,禁用:514, 密码永不过期:66048)
帐户过期 accountExpires
 
“配置文件”标签
配置文件路径 profilePath
登录脚本 scriptPath
主文件夹:本地路径 homeDirectory
连接 homeDrive
到 homeDirectory

“电话”标签
家庭电话 homePhone (若是其它,在前面加other。)
寻呼机 Pager 如:otherhomePhone。
移动电话 mobile 若多个以英文分号分隔。
传真 FacsimileTelephoneNumber
IP电话 ipPhone
注释 Info

“单位”标签
职务 Title
部门 Department
公司 Company

“隶属于”标签
隶属于  memberOf  用户组的DN不需使用引号, 多个用分号分隔 
“拨入”标签 远程访问权限(拨入或VPN) msNPAllowDialin
允许访问 值:TRUE
拒绝访问 值:FALSE
回拨选项 msRADIUSServiceType
由呼叫方设置或回拨到 值:4
总是回拨到 msRADIUSCallbackNumber 
“环境”、“会话”、“远程控制”、“终端服务配置文件”、“COM+”标签

属性
显示名称        属性名称
First Name        givenName
Last Name        sn
Initials        initials
Description        description
Office        physicalDeliveryOfficeName
Telephone Number        telephoneNumber
Telephone: Other        otherTelephone
E-Mail        mail
Web Page        wwwHomePage
Web Page: Other        url

帐号属性:
显示名称        属性名称
UserLogon Name        userPrincipalName
User logon name (pre-Windows 2000)        sAMAccountname
Logon Hours        logonHours
Log On To        logonWorkstation
Account is locked out        userAccountControl
User must change password at next logon        pwdLastSet
User cannot change password        N/A
Other Account Options        userAccountControl
Account Expires        accountExpires

地址属性
显示名称        属性名称
Street        streetAddress
P.O.Box        postOfficeBox
City        l
State/Province        st
Zip/Postal Code        postalCode
Country/Region        c , co , and countryCode

成员属性
显示名称        属性名称
Member of        memberOf
Set Primary Group        primaryGroupID

组织属性
显示名称        属性名称
Title        title
Department        department
Company        company
Manager:Name        manager
Direct Reports        directReports

外型属性
显示名称        属性名称
Profile Path        profilePath
Logon Script        scriptPath
Home Folder: Local Path        homeDirectory
Home Folder: Connect        homeDrive
Home Folder: To        homeDirectory

电话相关属性
显示名称        属性名称
Home        telephoneNumber
Home: Other        otherTelephone
Pager        pager
Pager: Other        pagerOther
Mobile        mobile
Mobile: Other        otherMobile
Fax        facsimileTelephoneNumber
Fax: Other        otherFacsimileTelephoneNumber
IP phone        ipPhone
IP phone: Other        otherIpPhone
Notes        info
回复

使用道具 举报

发表于 2015-5-2 04:54:43 来自手机 | 显示全部楼层
好贴 学习了

评分

参与人数 1人气 -3 收起 理由
admin6677 -3 淡定

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-5 11:14

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表