Я подозреваю, что ваша ошибка будет в 5-й строке кода
user.Properties["userAccountControl"].Value = val & ~0x2; //this will error
, и если вы отладите ее, вы, вероятно, увидите следующую ошибку
Указатели ошибок ибуферы фиксированного размера могут использоваться только в небезопасном контексте