На самом деле вам нужно выполнить побитовую операцию, чтобы установить правильный бит на соответствующее значение. По ссылке ниже вы столкнетесь с флагами контроля учетных записей. Таким образом, вам нужно только выполнить соответствующую логическую операцию со свойством, чтобы заблокировать или разблокировать учетную запись.
Следующая ссылка вас заинтересует, наверное.
Как (почти) все в AD
Позже я добавлю пример кода C #.
Вот код, предложенный:
public class AdUser {
private int _userAccountControl
public bool IsLocked {
get {
return _userAccountControl & UserAccountControls.Lock
} set {
if(value)
_userAccountControl = _userAccountControl | UserAccountControls.Lock
else
// Must reverse all the bits in the filter when performing an And operation
_userAccountControl = _userAccountControl & ~UserAccountControls.Lock
}
}
public enum UserAccountControls {
Lock = 0x10
}
}
Пожалуйста, рассмотрите возможность внесения некоторых изменений в этот код, поскольку я его не тестировал. Но ваш код должен быть похож на что-то похожее на блокировку и разблокировку учетной записи пользователя. Рано или поздно вам придется использовать DirectoryEntry.Properties [], чтобы установить для него значение в вашем классе объектов.
РЕДАКТИРОВАТЬ
Какой способ блокировки учетной записи Active Directory является предпочтительным?
int val = (int)directoryentry.Properties["userAccountControl"].Value;
directoryentry.Properties["userAccountControl"].Value = val | 0x0010;
против
directoryentry.InvokeSet("IsAccountLocked", true);
Отвечая на ваш вопрос, который я поставил в своей редакции, я бы сказал, что это самый простой способ, по крайней мере, я знаю. Насколько я понимаю, я предпочитаю оборачивать эти функции, как я это делал в моем примере кода, поэтому другим программистам не нужно заботиться о побитовых операциях и так далее. Для них они манипулируют объектами.
Что касается лучшего пути между этими двумя, я думаю, это в основном вопрос предпочтений. Если вы легко справляетесь с логическими операциями, обычно они предпочтительнее. Для сравнения, с вторым выбором проще играть.