Необходимо создать маленькую утилитку, которая блокировала или
разблокировала бы учетную запись в домене.
Создаем вхождение:
DirectoryEntry entry = new DirectoryEntry("WinNT://domain/user");
и получаем через entry.Properties набор свойств. Насколько я понимаю, за
состояние учетной записи отвечает свойство userFlags. Но как понять
какой бит за что отвечает? Как нужно поменять этот флаг для того, чтобы
например заблокировать запись?
Судя по значению маски UF_ACCOUNTDISABLE - это 1-ый бит (если считать с 0-го), когда он установлен - account в disabled состоянии.
Вот функция для изменения этого флага:
void EnableAccount(string path, bool enable)
{
DirectoryEntry entry = new DirectoryEntry(path);
entry.UsePropertyCache = false;
PropertyValueCollection valueCollection =
entry.Properties["userFlags"];
int userFlags = (int)valueCollection[0];
if (enable)
userFlags &= ~2;
else
userFlags |= 2;
valueCollection[0] = userFlags;
}
А вот ее использование (перевод в состояние disabled account'a Гость):
EnableAccount("WinNT://COMPUTER/Гость", false);