Некоторая информация для тех, кто пришел сюда и хочет установить значение AccountExpires.
Очистить истечение срока легко и просто:
entry.Properties["accountExpires"].Value = 0;
Однако, если вы попытаетесь напрямую записать int64 / long:
entry.Properties["accountExpires"].Value = dt.ToFileTime();
Вы можете получить сообщение «COMException не обработан - ошибка не указана»
Вместо этого запишите значение в виде строкового типа данных:
entry.Properties["accountExpires"].Value = dt.ToFileTime().ToString();
Имейте в виду время суток, которое вы устанавливаете, для согласованности с ADUC время должно быть 00:00.
Вместо .Now или .UtcNow вы можете использовать. Сегодня:
var dt1 = DateTime.Today.AddDays(90);
entry.Properties["accountExpires"].Value = dt1.ToFileTime().ToString();
Другие входные данные, такие как dateTimePicker, вы можете заменить время, Вид как локальный для контроллера домена:
var dt1 = dateTimePicker1.Value;
var dt2 = new DateTime(dt1.Year, dt1.Month, dt1.Day, 0, 0, 0, DateTimeKind.Local);
entry.Properties["accountExpires"].Value = dt2.ToFileTime().ToString();