2010-12-10 29 views
18

¿Existe un rápida manera fácil y para averiguar si el equipo local está unido a un dominio con PowerShell?¿Cómo encontrar si la computadora local está en un dominio?

puedo encontrar un montón de cosas acerca de cómo obtener el grupo de trabajo actual o el dominio, pero no hay indicaciones claras sobre cómo saber si realmente es un grupo de trabajo o dominio. Solo quiero descubrir esto antes de llamar a algunas cosas relacionadas con Active Directory que solo dan un tiempo de espera después de una larga espera en las computadoras del grupo de trabajo.

El [System.DirectoryServices.ActiveDirectory.Domain] :: GetCurrentDomain() toma un largo tiempo antes de fallar en los equipos de trabajo en grupo y la WMI Win32_ComputerSystem muestra el nombre pero no si se trata de un dominio real.

/por

Respuesta

30

Win32_ComputerSystem tiene una propiedad PartOfDomain que indica si el equipo está unido o no de dominio. También hay una propiedad de grupo de trabajo, que debe estar en blanco si la computadora está en un dominio.

Ejemplo:

if ((gwmi win32_computersystem).partofdomain -eq $true) { 
    write-host -fore green "I am domain joined!" 
} else { 
    write-host -fore red "Ooops, workgroup!" 
} 
0

Esto es simple. Funciona porque si un equipo no está en un dominio, el userdomain predeterminado es el equipo local

if ($env:computername -eq $env:userdomain) { echo " no AD domain" } 
else { echo "must be in AD"} 
+2

Esto no funciona si el usuario inicia sesión utilizando una cuenta local o es una cuenta del sistema incorporado. Esto también fallará en un entorno multidominio cuando el usuario y la computadora no están en el mismo dominio. – CoinEnablers

Cuestiones relacionadas