Obtener nombre de dominio

Mi computadora está en un dominio (Active Directory) y necesito obtener el nombre de dominio dinámicamente. Encontré el siguiente código en internet:

SelectQuery query = new SelectQuery("Win32_ComputerSystem");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
{
    foreach (ManagementObject mo in searcher.Get())
    {
        if ((bool)mo["partofdomain"])
        {
            this.Domain = mo["domain"].ToString();
            break;
        }
    }
 }

Funciona exactamente como quiero y devuelve exactamente el nombre de dominio que quiero (cuando estoy registrado como Administrador). Si el usuario no es un administrador de dominio, tengo unAccess denied excepción.

¿Alguien sabe cómo obtener el dominio incluso con usuarios que no son administradores de dominio?

NOTA: He encontrado esta solución en Internet.System.Environment.UserDomainName; pero solo me da una parte del nombre de dominio.

Es decir. mi dominio es:something.domain.com y elUserDomainName solo regresasomething.

Respuestas a la pregunta(6)

Su respuesta a la pregunta