自定义 AD 用户和计算机管理单元

自定义 AD 用户和计算机管理单元

我们正在考虑使用部门编号属性是 Active Directory 中用户的属性。管理员可以使用 AD 用户和计算机管理单元的“属性编辑器”选项卡轻松编辑此属性。但是,是否可以将此属性(或其他属性)放在一般的或者组织选项卡?这使得为其他支持团队创建自定义 MMC 变得颇具挑战性。

目前我们处于森林/域 2008 级别。

谢谢

答案1

之前研究过这个问题,不,你问的问题不可能轻易解决。我想到最简单的解决方案是向右键单击上下文菜单添加自定义命令,并使用它来启动包含所需字段的自定义表单。然而,这仍然不是一件容易的事,它需要所有域控制器都有自定义代码才能工作。

如果您有兴趣,这里有一个链接,概述了如何创建上下文菜单以及自定义表单: http://reddini.blogspot.com/2011/07/additional-active-directory-context.html

就我而言,我选择使用 HTA 文件作为自定义表单,而不是 VBA,因为布局更加灵活。这样做的另一个好处是,它允许用户轻松访问您可能使用的任何自定义 AD 属性。

这是我创建的表单。我们用它来捕获 AD 中不包含字段的 3 条数据。我们将这些值保存在自定义属性中。

在此处输入图片描述

这是我用于上述窗口的代码。当然,您需要根据自己的需要对其进行调整。现有值通过上下文菜单提供的命令行参数传递。

<html>
<head>
<title>Employee Information</title>
  <HTA:APPLICATION ID='Info'
   SingleInstance='Yes'   
   SysMenu='No'
   MaximizeButton='No'  
   MinimizeButton='No'
   CloseButton='Yes'
   SCROLLFLAT ='No'
    SCROLL='No'
   Border='Thin'
   BORDERSTYLE ='simple' 
   INNERBORDER ='No'
   Caption='Yes'          
   WindowState='Maximized'
   APPLICATIONNAME='Employee Info'
   Icon='%Windir%\explorer.exe'>
</head>

<SCRIPT LANGUAGE="VBScript">
window.resizeTo 410,340
    Dim objSelectedUser
    Dim args

    Sub Window_OnLoad
        args = Split(Info.commandline,"""")
        Birthday.Value = "error"
        HireDate.Value = "error"
        EpicorID.Value = "error"
        Set objSelectedUser = GetObject(args(3))
        EpicorID.Value = objSelectedUser.epicorID
        Birthday.Value = objSelectedUser.employeeBirthday
        HireDate.Value = objSelectedUser.employeeHireDate
    End Sub

        Sub TestSub
            if EpicorID.Value <> "" Then
            objSelectedUser.Put "epicorID",EpicorID.Value
            end if

            if Birthday.Value <> "" Then
            objSelectedUser.Put "EmployeeBirthday",Birthday.Value
            end if  

            if HireDate.Value <> "" Then
            objSelectedUser.Put "EmployeeHireDate",HireDate.Value
            end if
            objSelectedUser.SetInfo

            MsgBox("Settings Saved")
            Close
        End Sub

    Sub CloseWindow
            Close
        End Sub

</SCRIPT>

<body style="background:rgb(242,242,242); font-family:Calibri;">
<center>
<h3>Employee Information</h3>
<p style="border:solid 1px;">Current values are displayed. Enter new values and click "Save" to overwrite the old values. 
Click "Cancel" to exit without making changes. Dates should be entered as MM/DD/YYYY.</p>
<table>
<tr>
    <td align="right">Epicor ID:</td>
    <td><input type="text" name="EpicorID" size="10"></td>
    </tr>
    <tr>
    <td>Employee Birthdate:</td>
    <td><input type="text" name="Birthday" size="20"></td>
    </tr>
    <tr>
    <td>Employee Hire Date</td>
    <td><input type="text" name="HireDate" size="20"></td>
    </tr>
        <tr>
        <td colspan="2">
        <hr>
        </td>
    </tr>
        <tr>
    <td align="right"><input id=runbutton  type="button" value="Save" name="run_button"   onClick="TestSub" style="width:100%;"></td>
    <td><input id=runbutton  type="button" value="Cancel/Exit" name="run_button"      onClick="CloseWindow" style="width:100%;"></td>
    </tr>
    </table>
    </center>


    </body>

相关内容