none
如何在AD中增加一个员工编号的属性? RRS feed

  • 問題

  • 客户想在活动目录用户和计算机工具里面,用户-常规页面里加一项用户属性Employee ID,以下是微软工程师的回复,但我照着做却无法成功,帮看看是那里不对,如何解决,非常感谢!

    基本上來說這是一個開發的問題。

     

    有兩種情況,一是在界面上添加一個屬性,另外一種折中的辦法是用功能菜單的方式現實。

     

    如果要在界面上添加一個屬性,需要開發一個DLL來修改界面。可參考:

     

    Active Directory Users and Computers Property Sheets

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ad/ad/active_directory_users_and_computers_property_sheets.asp

     

    Property Pages for Use with Display Specifiers

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ad/ad/property_pages_for_use_with_display_specifiers.asp

     

    Extending the User Interface for Directory Objects
    http://msdn2.microsoft.com/en-us/library/ms676902.aspx

     

    如果用功能菜單的方式現實,你可以參考下面的方法:

     

    1. Install Support Tools from Support\Tools folder of Windows 2003 CD.
    2. Run adsiedit.msc to open the Active Directory Service Interfaces (ADSI) Edit utility, then navigate to Configuration Container and then CN=Configuration, CN=DisplaySpecifiers, CN=409.
    3. In the right-pane, locate and right-click CN=user-display, and select Properties.
    4. In Choose "adminContext menu" and in the Edit Attribute box, type thefollowing:

    "2,&Employee ID, EmployeeID.vbs"

    Click Add. (Without quotation marks)
    (where 2 is a number of a value that is not used, by default there is already 1 entry in here. If 2 is used then use 3, etc...)

    These steps configure the option EmployeeID on the context menu for a user in the Active Directory Users and Computers snap-in. Start the Active Directory Users and Computers and right click on a user, you will find the option to display and set Employee ID.

    Here is the EmployeeID.vbs file: (You must write and place the following scripts on C:\ or somewhere else in your file path.)

    EmployeeID.vbs
    =======

    Dim oVar
    Dim oUsr
    Dim tmp
    Set oVar = Wscript.Arguments
    Set oUsr = GetObject(oVar(0))
    tmp = InputBox("The Employee ID of the user is: " & oUsr.EmployeeID & vbCRLF &
    vbCRLF & "If you would like enter a new number or modify the existing number, enter
    the new number in the textbox below") if tmp <> "" then oUsr.Put "EmployeeID",tmp
    oUsr.SetInfo Set oUsr = Nothing WScript.Quit

     

     

    2009年5月4日 下午 03:07

解答

  • 如果可能的話,最好是取用一個內建的 schema 結構來存,若要 extend schema 的話,要考量的東西就很多了,除了 extend 的方法外,還要考量像 site replication, topology, AD data replication 與 GC (masters) 這些東西,要事先和 IT 人員討論好才能做。
    小人物一枚。
    • 已標示為解答 Lolota Lee 2009年5月11日 上午 05:05
    2009年5月6日 上午 02:20
    版主

所有回覆

  • 如果可能的話,最好是取用一個內建的 schema 結構來存,若要 extend schema 的話,要考量的東西就很多了,除了 extend 的方法外,還要考量像 site replication, topology, AD data replication 與 GC (masters) 這些東西,要事先和 IT 人員討論好才能做。
    小人物一枚。
    • 已標示為解答 Lolota Lee 2009年5月11日 上午 05:05
    2009年5月6日 上午 02:20
    版主
  • 关于使用功能菜单的方法实现,这个确实是可以,而且不影响现有的架构。

    关于你做不成功,估计可能有几个原因。

    1.没做EmployeeID和用户的关联,可以参考http://www.7layer.cn/cat_19/638/638/638.html;

    2.步骤2中的409是英文系统的,如果是简体中文的系统应该是804,其他的语音可以参考http://msdn.microsoft.com/en-us/goglobal/bb895996

    3.步骤4中的EmployeeID.vbs应该带路径,如EmployeeID.vbs存放在c盘下,则写为c:\EmployeeID.vbs;

    4.脚本也可能有错,这个脚本最后那句很长的肯定是没有断句,这是不对的,例外即使断句正确之后,也会报错,具体可以参考http://www.smartpit.net/wiki/index.php/Employee_ID_in_ADUC这个链接的脚本,复制下来也不用修改。


    2012年7月10日 下午 01:17