Partager via


Méthode JoinDomainOrWorkgroup de la classe Win32_ComputerSystem

La méthode JoinDomainOrWorkgroup joint un système informatique à un domaine ou un groupe de travail.

Cette rubrique utilise la syntaxe MOF (Managed Object Format). Pour plus d’informations sur l’utilisation de cette méthode, consultez Appel d’une méthode.

Syntaxe

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

Paramètres

Nom [in]

Spécifie le domaine ou le groupe de travail à joindre. Impossible d’avoir la valeur NULL.

Mot de passe [in]

Si le paramètre UserName spécifie un nom de compte, le paramètre Password doit pointer vers le mot de passe à utiliser lors de la connexion au contrôleur de domaine. Sinon, ce paramètre doit avoir la valeur NULL.

UserName [in]

Pointeur vers une chaîne de caractères null constante qui spécifie le nom de compte à utiliser lors de la connexion au contrôleur de domaine. Doit spécifier un nom de domaine NetBIOS et un compte d’utilisateur, par exemple Domaine\utilisateur. Si ce paramètre a la valeur NULL, les informations de l’appelant sont utilisées.

Vous pouvez également utiliser le nom d’utilisateur principal (UPPED) sous la forme user@domain.

AccountOU [in]

Spécifie le pointeur vers une chaîne de caractères null constante qui contient le nom de format RFC 1779 de l’unité d’organisation (UO) pour le compte d’ordinateur. Si vous spécifiez ce paramètre, la chaîne doit contenir un chemin d’accès complet, sinon Accent doit avoir la valeur NULL.

Exemple : « OU=testOU; DC=domain; DC=Domain ; DC=com »

FJoinOptions [in]

Ensemble d’indicateurs de bits qui définissent les options de jointure.

(0)

Par défaut. Aucune option de jointure.

NETSETUP_JOIN_DOMAIN (0x00000001)

Joint l’ordinateur à un domaine. Si cette valeur n’est pas spécifiée, joint l’ordinateur à un groupe de travail.

NETSETUP_ACCT_CREATE (0x00000002)

Crée le compte sur le domaine.

NETSETUP_WIN9X_UPGRADE (0x00000010)

L’opération de jointure se produit dans le cadre d’une mise à niveau.

NETSETUP_DOMAIN_JOIN_IF_JOINED (0x00000020)

Autorise une jointure à un nouveau domaine même si l’ordinateur est déjà joint à un domaine.

NETSETUP_JOIN_UNSECURE (0x00000040)

Effectue une jonction non sécurisée.

Cette option demande une jointure de domaine à un compte précréé sans authentification avec les informations d’identification de l’utilisateur de domaine. Cette option peut être utilisée conjointement avec NETSETUP_MACHINE_PWD_PASSED option. Dans ce cas, le mot de passe est le mot de passe du compte d’ordinateur précréé.

Avant Windows Vista avec SP1 et Windows Server 2008, une jointure non sécurisée ne s’authentifie pas auprès du contrôleur de domaine. Toutes les communications ont été effectuées à l’aide d’une session null (non authentifiée). À compter de Windows Vista avec SP1 et Windows Server 2008, le nom du compte d’ordinateur et le mot de passe sont utilisés pour s’authentifier auprès du contrôleur de domaine.

NETSETUP_MACHINE_PWD_PASSED (0x00000080)

Indique que le paramètre Password spécifie un mot de passe de compte d’ordinateur local plutôt qu’un mot de passe utilisateur. Cet indicateur est valide uniquement pour les jointures non sécurisées, ce que vous devez indiquer en définissant également l’indicateur NETSETUP_JOIN_UNSECURE.

Si vous définissez cet indicateur, une fois l’opération de jointure réussie, le mot de passe de l’ordinateur est défini sur la valeur Mot de passe, si cette valeur est un mot de passe d’ordinateur valide.

NETSETUP_DEFER_SPN_SET (0x00000100)

Indique que le nom du principal de service (SPN) et les propriétés DnsHostName sur l’objet ordinateur ne doivent pas être mises à jour pour le moment.

En règle générale, ces propriétés sont mises à jour pendant l’opération de jointure. Au lieu de cela, ces propriétés doivent être mises à jour lors d’un appel suivant à la méthode Rename . Ces propriétés sont toujours mises à jour pendant l’opération de renommage.

NETSETUP_JOIN_DC_ACCOUNT (0x00000200)

Autorisez la jointure de domaine si le compte existant est un contrôleur de domaine.

Notes

Cet indicateur est pris en charge sur Windows Vista et versions ultérieures.

NETSETUP_AMBIGUOUS_DC (0x00001000)

Lorsque vous rejoignez le domaine, n’essayez pas de définir le contrôleur de domaine préféré dans le Registre.

Notes

Cet indicateur est pris en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures.

NETSETUP_NO_NETLOGON_CACHE (0x00002000)

Lorsque vous joignez le domaine, ne créez pas le cache Netlogon.

Notes

Cet indicateur est pris en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures.

NETSETUP_DONT_CONTROL_SERVICES (0x00004000)

Lorsque vous rejoignez le domaine, ne forcez pas le service Netlogon à démarrer.

Notes

Cet indicateur est pris en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures.

NETSETUP_SET_MACHINE_NAME (0x00008000)

Lorsque vous joignez le domaine pour la jointure hors connexion uniquement, définissez le nom d’hôte de la machine cible et le nom NetBIOS.

Notes

Cet indicateur est pris en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures.

NETSETUP_FORCE_SPN_SET (0x00010000)

Lorsque vous joignez le domaine, remplacez d’autres paramètres lors de la jonction de domaine et définissez le nom du principal de service (SPN).

Notes

Cet indicateur est pris en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures.

NETSETUP_NO_ACCT_REUSE (0x00020000)

Lorsque vous rejoignez le domaine, ne réutilisez pas un compte existant.

Notes

Cet indicateur est pris en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures.

NETSETUP_IGNORE_UNSUPPORTED_FLAGS (0x10000000)

Si ce bit est défini, les indicateurs non reconnus seront ignorés par la fonction JoinDomainOrWorkgroup et NetJoinDomain se comportera comme si les indicateurs n’étaient pas définis.

Valeur retournée

Retourne un code d’erreur système, qui peut inclure l’une des valeurs numériques suivantes. Tout autre nombre indique une erreur. Pour obtenir des codes d’erreur supplémentaires, consultez Constantes d’erreur WMI ou WbemErrorEnum.

Success

0

5

L’accès est refusé.

87

Le paramètre est incorrect.

110

Le système ne peut pas ouvrir l’objet spécifié.

1323

Impossible de mettre à jour le mot de passe.

1326

Échec de connexion : nom d’utilisateur inconnu ou mot de passe incorrect.

1355

Le domaine spécifié n’existe pas ou n’a pas pu être contacté.

2224

Le compte existe déjà.

2691

La machine est déjà jointe au domaine.

2692

La machine n’est actuellement pas jointe à un domaine.

WBEM_E_ENCRYPTED_CONNECTION_REQUIRED

0x80041087

Password et UserName sont spécifiés, mais le niveau d’authentification n’est pas RPC_C_AUTHN_LEVEL_PKT_PRIVACY. Pour Visual Basic, wbemErrEncryptedConnectionRequired est retourné.

Autres

1 4294967295

Notes

Lorsque vous déplacez un ordinateur d’un domaine vers un groupe de travail, vous devez supprimer l’ordinateur du domaine (avec un appel à UnjoinDomainOrWorkgroup) avant d’appeler cette méthode pour rejoindre un groupe de travail (avec un appel à JoinDomainOrWorkgroup). Après avoir appelé cette méthode, redémarrez l’ordinateur affecté pour appliquer les modifications.

UserName et Password peuvent être laissés comme null. Toutefois, l’authentification de la connexion à WMI doit être 6 dans le script ou WbemAuthenticationLevelPktPrivacy en Visual Basic et dans d’autres langages pouvant utiliser la bibliothèque wbemdisp.dll . Pour plus d’informations, consultez Définition du niveau de sécurité du processus par défaut à l’aide de VBScript.

En C++, définissez l’authentification sur RPC_C_AUTHN_LEVEL_PKT_PRIVACY soit dans CoInitializeSecurity, pour l’ensemble du processus, soit dans CoSetProxyBlanket, pour une connexion au proxy IWbemServices . Pour plus d’informations, consultez Définition de l’authentification à l’aide de C++ et Définition de la sécurité sur IWbemServices et autres proxys.

Exemples

L’exemple PowerShell joindre un ordinateur à un domaine joint un ordinateur à un domaine.

L’exemple de code VBScript suivant joint un ordinateur à un domaine et crée le compte de l’ordinateur dans 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)

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
Espace de noms
Racine\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Voir aussi

Win32_ComputerSystem

Méthode UnjoinDomainOrWorkgroup