public static string GetJoinedDomain()
        {
            int           result  = 0;
            string        domain  = null;
            IntPtr        pDomain = IntPtr.Zero;
            NetJoinStatus status  = NetJoinStatus.NetSetupUnknownStatus;

            try
            {
                result = NetGetJoinInformation(null, out pDomain, out status);
                if (result == ERROR_SUCCESS && status == NetJoinStatus.NetSetupDomainName)
                {
                    domain = Marshal.PtrToStringUni(pDomain);
                }
            }
            finally
            {
                if (pDomain != IntPtr.Zero)
                {
                    NetApiBufferFree(pDomain);
                }
            }
            if (domain == null)
            {
                domain = "";
            }
            return(domain);
        }
Example #2
0
        // Returns the domain name the computer is joined to, or "" if not joined.
        public static string GetDomainOrWorkgroup()
        {
            int           result  = 0;
            string        domain  = null;
            IntPtr        pDomain = IntPtr.Zero;
            NetJoinStatus status  = NetJoinStatus.NetSetupUnknownStatus;

            try
            {
                result = NetGetJoinInformation(null, out pDomain, out status);
                if (result == ErrorSuccess)
                {
                    switch (status)
                    {
                    case NetJoinStatus.NetSetupDomainName:
                    case NetJoinStatus.NetSetupWorkgroupName:
                        domain = Marshal.PtrToStringAuto(pDomain);
                        break;
                    }
                }
            }
            finally
            {
                if (pDomain != IntPtr.Zero)
                {
                    NetApiBufferFree(pDomain);
                }
            }
            if (domain == null)
            {
                domain = "";
            }
            return(domain);
        }
Example #3
0
        public static string IsDomainJoined()
        {
            // returns Compuer Domain if the system is inside an AD (an nothing if it is not)
            try
            {
                NetJoinStatus status  = NetJoinStatus.NetSetupUnknownStatus;
                IntPtr        pDomain = IntPtr.Zero;
                int           result  = Netapi32.NetGetJoinInformation(null, out pDomain, out status);
                if (pDomain != IntPtr.Zero)
                {
                    Netapi32.NetApiBufferFree(pDomain);
                }

                if (result == Win32.ErrorSuccess)
                {
                    // If in domain, return domain name, if not, return empty
                    return(status == NetJoinStatus.NetSetupDomainName ? Environment.UserDomainName : "");
                }
            }

            catch (Exception ex)
            {
                Beaprint.GrayPrint(string.Format("  [X] Exception: {0}\n Trying to check if domain is joined using WMI", ex.Message));
                return(IsDomainJoinedWmi());
            }
            return("");
        }
Example #4
0
 public static int NetGetJoinInformation(string server, out IntPtr domain, out NetJoinStatus status)
 {
     // TODO: https://stackoverflow.com/questions/14904749/mac-osx-determing-whether-user-account-is-an-active-directory-user-vs-local-us/15284509#15284509
     NotImplemented(MethodBase.GetCurrentMethod());
     domain = IntPtr.Zero;
     status = NetJoinStatus.NetSetupUnknownStatus;
     return(0);
 }
Example #5
0
        private bool CheckDomain()
        {
            NetJoinStatus status  = NetJoinStatus.NetSetupUnknownStatus;
            IntPtr        pDomain = IntPtr.Zero;
            int           result  = Win32.NetGetJoinInformation(null, out pDomain, out status);

            if (pDomain != IntPtr.Zero)
            {
                NetApiBufferFree(pDomain);
            }
            if (result == Win32.ErrorSuccess)
            {
                return(status == NetJoinStatus.NetSetupDomainName);
            }
            else
            {
                throw new Exception("Nepodarilo sa načítať info o doméne", new Win32Exception());
            }
        }
 public static extern int NetGetJoinInformation(string server, out IntPtr domain, out NetJoinStatus status);
Example #7
0
 public static extern int NetGetJoinInformation(
     string server,
     out IntPtr domain,
     out NetJoinStatus status);
 public static extern int NetGetJoinInformation(
     [In, MarshalAs(UnmanagedType.LPWStr)] string server,
     out IntPtr domain,
     out NetJoinStatus status);
Example #9
0
 public static extern int NetGetJoinInformation(
     [In, MarshalAs(UnmanagedType.LPWStr)]string server,
     out IntPtr domain,
     out NetJoinStatus status);