private static bool TryGetDomainNameWindows(out string domainName, out string errorMessage) { var domainNameLength = MaxDomainNameLength; var domainNameBuilder = new StringBuilder(MaxDomainNameLength); if (!Win32Interop.GetComputerNameEx(Win32Interop.COMPUTER_NAME_FORMAT.ComputerNameDnsDomain, domainNameBuilder, ref domainNameLength)) { errorMessage = string.Concat("WinAPI function [GetComputerNameEx] failed with code: ", Marshal.GetLastWin32Error()); domainName = null; return(false); } if (domainNameLength < 1) { domainName = NoDomainName; errorMessage = null; return(true); } domainName = domainNameBuilder.ToString(0, domainNameLength); errorMessage = null; return(true); }