/// <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);
        }
示例#2
0
        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;
        }