I have some vb.net code to update the properties of an existing active user account on a local machine: Private Function UpdateAccount(ByVal objUser As clsUser) As Boolean Dim deUser As DirectoryEntry = m_deMyComputer.Children.Find(objUser.UserName) Dim lUserFlags As Int32 = deUser.Properties("UserFlags").Value Try ' Update user properties deUser.Properties("Description").Value = objUser.Description deUser.Properties("FullName").Value = objUser.FullName deUser.Invoke("SetPassword", New Object() {"password", objUser.Password}) If (objUser.UserCannotChangePassword = True) Then lUserFlags = lUserFlags Or ADS_UF_PASSWD_CANT_CHANGE Else lUserFlags = lUserFlags And Not ADS_UF_PASSWD_CANT_CHANGE End If If (objUser.UserPasswordNeverExpires = True) Then lUserFlags = lUserFlags Or ADS_UF_DONT_EXPIRE_PASSWD Else lUserFlags = lUserFlags And Not ADS_UF_DONT_EXPIRE_PASSWD End If * deUser.Properties("userFlags").Value = lUserFlags deUser.CommitChanges() Return True Catch ex As Exception Return False End Try End Function When I run this, the line marked * fails and throws a COM Exception. What am I doing wrong? I am using Winnt provider in DirectoryServices. Thanks James