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 |
|
DLL |
|