Método JoinDomainOrWorkgroup de la clase Win32_ComputerSystem

El método JoinDomainOrWorkgroup une un sistema de equipo a un dominio o grupo de trabajo.

En este tema se usa la sintaxis de Managed Object Format (MOF). Para obtener más información sobre el uso de este método, vea Llamar a un método.

Sintaxis

uint32 JoinDomainOrWorkgroup(
  [in] string Name,
  [in] string Password,
  [in] string UserName,
  [in] string AccountOU,
  [in] uint32 FJoinOptions = 
);

Parámetros

Nombre [in]

Especifica el dominio o grupo de trabajo que se va a unir. No puede ser NULL.

Contraseña [in]

Si el parámetro UserName especifica un nombre de cuenta, el parámetro Password debe apuntar a la contraseña que se usará al conectarse al controlador de dominio. De lo contrario, este parámetro debe ser NULL.

UserName [in]

Puntero a una cadena de caracteres terminada en NULL constante que especifica el nombre de cuenta que se va a usar al conectarse al controlador de dominio. Debe especificar un nombre NetBIOS de dominio y una cuenta de usuario, por ejemplo, Dominio\usuario. Si este parámetro es NULL, se usa la información del autor de la llamada.

También puede usar el nombre principal de usuario (UPPED) con el formato user@domain.

AccountOU [in]

Especifica el puntero a una cadena de caracteres terminada en NULL constante que contiene el nombre de formato RFC 1779 de la unidad organizativa (OU) para la cuenta de equipo. Si especifica este parámetro, la cadena debe contener una ruta de acceso completa; de lo contrario, Accent debe ser NULL.

Ejemplo: "OU=testOU; DC=domain; DC=Dominio; DC=com"

FJoinOptions [in]

Conjunto de marcas de bits que definen las opciones de combinación.

(0)

Predeterminada. Sin opciones de combinación.

NETSETUP_JOIN_DOMAIN (0x00000001)

Une el equipo a un dominio. Si no se especifica este valor, une el equipo a un grupo de trabajo.

NETSETUP_ACCT_CREATE (0x00000002)

Crea la cuenta en el dominio.

NETSETUP_WIN9X_UPGRADE (0x00000010)

La operación de combinación se está produciendo como parte de una actualización.

NETSETUP_DOMAIN_JOIN_IF_JOINED (0x00000020)

Permite una unión a un nuevo dominio incluso si el equipo ya está unido a un dominio.

NETSETUP_JOIN_UNSECURE (0x00000040)

realiza una unión no segura.

Esta opción solicita una unión de dominio a una cuenta creada previamente sin autenticarse con credenciales de usuario de dominio. Esta opción se puede usar junto con NETSETUP_MACHINE_PWD_PASSED opción. En este caso, Password es la contraseña de la cuenta de máquina creada previamente.

Antes de Windows Vista con SP1 y Windows Server 2008, una combinación no segura no se autenticaba en el controlador de dominio. Toda la comunicación se realizó mediante una sesión nula (sin autenticar). A partir de Windows Vista con SP1 y Windows Server 2008, el nombre de la cuenta de equipo y la contraseña se usan para autenticarse en el controlador de dominio.

NETSETUP_MACHINE_PWD_PASSED (0x00000080)

Indica que el parámetro Password especifica una contraseña de cuenta de equipo local en lugar de una contraseña de usuario. Esta marca solo es válida para combinaciones no seguros, que también debe indicar estableciendo la marca NETSETUP_JOIN_UNSECURE.

Si establece esta marca, después de que la operación de combinación se realice correctamente, la contraseña del equipo se establecerá en el valor de Contraseña, si ese valor es una contraseña de máquina válida.

NETSETUP_DEFER_SPN_SET (0x00000100)

Indica que el nombre de la entidad de seguridad de servicio (SPN) y las propiedades DnsHostName del objeto de equipo no se deben actualizar en este momento.

Normalmente, estas propiedades se actualizan durante la operación de combinación. En su lugar, estas propiedades se deben actualizar durante una llamada posterior al método Rename . Estas propiedades siempre se actualizan durante la operación de cambio de nombre.

NETSETUP_JOIN_DC_ACCOUNT (0x00000200)

Permita la unión a un dominio si la cuenta existente es un controlador de dominio.

Nota

Esta marca es compatible con Windows Vista y versiones posteriores.

NETSETUP_AMBIGUOUS_DC (0x00001000)

Cuando se une al dominio, no intente establecer el controlador de dominio preferido en el Registro.

Nota

Esta marca es compatible con Windows 7, Windows Server 2008 R2 y versiones posteriores.

NETSETUP_NO_NETLOGON_CACHE (0x00002000)

Cuando se une al dominio, no cree la memoria caché de Netlogon.

Nota

Esta marca es compatible con Windows 7, Windows Server 2008 R2 y versiones posteriores.

NETSETUP_DONT_CONTROL_SERVICES (0x00004000)

Al unirse al dominio, no se fuerza al servicio Netlogon a iniciarse.

Nota

Esta marca es compatible con Windows 7, Windows Server 2008 R2 y versiones posteriores.

NETSETUP_SET_MACHINE_NAME (0x00008000)

Al unir el dominio solo para la unión sin conexión, establezca el nombre de host de la máquina de destino y el nombre NetBIOS.

Nota

Esta marca es compatible con Windows 7, Windows Server 2008 R2 y versiones posteriores.

NETSETUP_FORCE_SPN_SET (0x00010000)

Al unir el dominio, invalide otras opciones de configuración durante la unión al dominio y establezca el nombre de la entidad de seguridad de servicio (SPN).

Nota

Esta marca es compatible con Windows 7, Windows Server 2008 R2 y versiones posteriores.

NETSETUP_NO_ACCT_REUSE (0x00020000)

Al unirse al dominio, no reutilice una cuenta existente.

Nota

Esta marca es compatible con Windows 7, Windows Server 2008 R2 y versiones posteriores.

NETSETUP_IGNORE_UNSUPPORTED_FLAGS (0x10000000)

Si se establece este bit, la función JoinDomainOrWorkgroup omitirá las marcas no reconocidas y NetJoinDomain se comportará como si no se establecieran las marcas.

Valor devuelto

Devuelve un código de error del sistema, que puede incluir uno de los valores numéricos siguientes. Cualquier otro número indica que hubo un error. Para obtener códigos de error adicionales, consulte Constantes de error WMI o WbemErrorEnum.

Success

0

5

Acceso denegado.

87

El parámetro no es correcto.

110

El sistema no puede abrir el objeto especificado.

1323

No se puede actualizar la contraseña.

1326

Error de inicio de sesión: nombre de usuario desconocido o contraseña incorrecta.

1355

El dominio especificado no existe o no se pudo establecer contacto con él.

2224

La cuenta ya existe.

2691

La máquina ya está unida al dominio.

2692

La máquina no está unida actualmente a un dominio.

WBEM_E_ENCRYPTED_CONNECTION_REQUIRED

0x80041087

Se especifican password y UserName , pero el nivel de autenticación no es RPC_C_AUTHN_LEVEL_PKT_PRIVACY. Para Visual Basic, se devuelve wbemErrEncryptedConnectionRequired .

Otros

1 4294967295

Comentarios

Al mover un equipo de un dominio a un grupo de trabajo, debe quitar el equipo del dominio (con una llamada a UnjoinDomainOrWorkgroup) antes de llamar a este método para unirse a un grupo de trabajo (con una llamada a JoinDomainOrWorkgroup). Después de llamar a este método, reinicie el equipo afectado para aplicar los cambios.

UserName y Password pueden dejarse null. Sin embargo, la autenticación de la conexión a WMI debe ser 6 en script o WbemAuthenticationLevelPktPrivacy en Visual Basic y otros lenguajes que pueden usar la biblioteca dewbemdisp.dll . Para obtener más información, vea Establecer el nivel de seguridad de proceso predeterminado mediante VBScript.

En C++, establezca la autenticación en RPC_C_AUTHN_LEVEL_PKT_PRIVACY en CoInitializeSecurity, para todo el proceso o en CoSetProxyBlanket, para una conexión al proxy IWbemServices . Para obtener más información, vea Establecer la autenticación mediante C++ y Establecer la seguridad en IWbemServices y otros servidores proxy.

Ejemplos

El ejemplo Unir un equipo a un dominio de PowerShell une un equipo a un dominio.

En el ejemplo de código de VBScript siguiente se une un equipo a un dominio y se crea la cuenta del equipo en Active Directory.

Const JOIN_DOMAIN             = 1
Const ACCT_CREATE             = 2
Const ACCT_DELETE             = 4
Const WIN9X_UPGRADE           = 16
Const DOMAIN_JOIN_IF_JOINED   = 32
Const JOIN_UNSECURE           = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET        = 256
Const INSTALL_INVOCATION      = 262144
strDomain   = "FABRIKAM"
strPassword = "ls4k5ywA"
strUser     = "shenalan"
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & strComputer & _
                            "\root\cimv2:Win32_ComputerSystem.Name='" & strComputer & "'")
ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
                                                strPassword, _
                                                strDomain & "\" & strUser, _
                                                NULL, _
                                                JOIN_DOMAIN + ACCT_CREATE)

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Espacio de nombres
Root\CIMV2
MOF
CIMWin32.mof
Archivo DLL
CIMWin32.dll

Consulte también

Win32_ComputerSystem

Método UnjoinDomainOrWorkgroup