/// <summary> /// Net user user_name /active:{no | yes} [/domain] /// </summary> public static int NetUserSetInfoAccountDisabled(string servername, string username) { int nStatus; USER_INFO level = USER_INFO.USER_INFO_1008; System.UInt32 parm_err; System.IntPtr userInfoPtr = IntPtr.Zero; USER_INFO_1008 userInfo = new USER_INFO_1008(); userInfo.usri1008_flags = (uint)(UF.UF_SCRIPT | UF.UF_ACCOUNTDISABLE); userInfoPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(userInfo)); Marshal.StructureToPtr(userInfo, userInfoPtr, false); nStatus = NetUserSetInfo(servername, username, (System.UInt32)level, userInfoPtr, out parm_err); if (nStatus == NERR_Success) { System.Console.WriteLine("User account {0} has been disabled", username); } else { System.Console.WriteLine("A system error has occurred: {0} {1}", nStatus, MethodBase.GetCurrentMethod()); } NetApiBufferFree(userInfoPtr); return(nStatus); }
NetEditUserFlags( string servername, string username, uint flags ) { uint result = (uint)LUGAPI.WinError.ERROR_SUCCESS; if (String.IsNullOrEmpty(servername)) { servername = null; } if (String.IsNullOrEmpty(username)) { username = null; } USER_INFO_1008 userinfo_1008 = new USER_INFO_1008(); userinfo_1008.usri1008_flags = flags; IntPtr bufptr1008 = IntPtr.Zero; bufptr1008 = Marshal.AllocHGlobal(Marshal.SizeOf(userinfo_1008)); try { if (!NetApiInitCalled) { result = NetApiInit(); if (result != (uint)LUGAPI.WinError.ERROR_SUCCESS) { return result; } NetApiInitCalled = true; } Marshal.StructureToPtr(userinfo_1008, bufptr1008, false); result = (uint)NetUserSetInfo(servername, username, 1008, bufptr1008, IntPtr.Zero); } catch (Exception) { result = (uint)LUGAPI.WinError.ERROR_EXCEPTION_IN_SERVICE; } finally { Marshal.DestroyStructure(bufptr1008, userinfo_1008.GetType()); Marshal.FreeHGlobal(bufptr1008); } return result; }