Посмотрев на это раньше, нет, не легко сделать то, что вы просите. Самое простое решение, которое я придумал, - добавить пользовательскую команду в контекстное меню, вызываемое правой кнопкой мыши, и использовать ее для запуска пользовательской формы, содержащей нужные поля. Тем не менее, это все еще не просто и требует, чтобы все контроллеры домена имели собственный код для его работы.
Если вам интересно, вот ссылка, которая описывает, как создать контекстное меню, а также пользовательскую форму:http://reddini.blogspot.com/2011/07/additional-active-directory-context.html
В моем случае я решил использовать файл HTA для своей пользовательской формы, а не VBA, поскольку макет намного более гибок. Другой плюс в том, что он позволяет пользователям легко получать доступ к любым пользовательским атрибутам AD, которые вы можете использовать.
Вот как выглядит форма, которую я создал. Мы используем его для захвата 3 частей данных, для которых AD не содержит полей. Мы сохраняем эти значения в пользовательских атрибутах.
Вот код, который я использовал для вышеприведенного окна. Конечно, вам нужно настроить его под свои нужды. Существующие значения передаются через аргументы командной строки, которые предоставляет контекстное меню.
<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>