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); }
// 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); }
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(""); }
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); }
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);
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);
public static extern int NetGetJoinInformation( [In, MarshalAs(UnmanagedType.LPWStr)]string server, out IntPtr domain, out NetJoinStatus status);