Win32_ComputerSystem クラスの JoinDomainOrWorkgroup メソッド
JoinDomainOrWorkgroup メソッドは、コンピューター システムをドメインまたはワークグループに参加させます。
このトピックでは、マネージド オブジェクト形式 (MOF) 構文を使用します。 このメソッドの使用方法の詳細については、「メソッドの 呼び出し」を参照してください。
構文
uint32 JoinDomainOrWorkgroup(
[in] string Name,
[in] string Password,
[in] string UserName,
[in] string AccountOU,
[in] uint32 FJoinOptions =
);
パラメーター
-
Name [in]
-
参加するドメインまたはワークグループを指定します。 NULL にすることはできません。
-
パスワード [入力]
-
UserName パラメーターにアカウント名が指定されている場合、Password パラメーターは、ドメイン コントローラーへの接続時に使用するパスワードを指す必要があります。 それ以外の場合、このパラメーターは NULL である必要があります。
-
UserName [in]
-
ドメイン コントローラーへの接続時に使用するアカウント名を指定する 、null で終わる定数文字列へのポインター。 ドメイン NetBIOS 名とユーザー アカウント (Domain\user など) を指定する必要があります。 このパラメーターが NULL の場合は、呼び出し元情報が使用されます。
ユーザー プリンシパル名 (UPPED) は、user@domainフォームでも使用できます。
-
AccountOU [in]
-
コンピューター アカウントの組織単位 (OU) の RFC 1779 形式名を含む、null で終わる定数文字列へのポインターを指定します。 このパラメーターを指定する場合、文字列には完全なパスが含まれている必要があります。それ以外の場合は Accent を NULL にする必要があります。
例: "OU=testOU; DC=domain; DC=Domain; DC=com"
-
FJoinOptions [in]
-
結合オプションを定義する一連のビット フラグ。
-
(0)
-
既定値。 結合オプションはありません。
-
NETSETUP_JOIN_DOMAIN (0x00000001)
-
コンピューターをドメインに参加させます。 この値を指定しない場合は、コンピューターをワークグループに参加させます。
-
NETSETUP_ACCT_CREATE (0x00000002)
-
ドメインにアカウントを作成します。
-
NETSETUP_WIN9X_UPGRADE (0x00000010)
-
結合操作は、アップグレードの一環として実行されています。
-
NETSETUP_DOMAIN_JOIN_IF_JOINED (0x00000020)
-
コンピューターが既にドメインに参加している場合でも、新しいドメインへの参加を許可します。
-
NETSETUP_JOIN_UNSECURE (0x00000040)
-
セキュリティで保護されていない参加を実行します。
このオプションは、ドメイン ユーザーの資格情報を使用して認証することなく、事前に作成されたアカウントにドメイン参加を要求します。 このオプションは、 NETSETUP_MACHINE_PWD_PASSED オプションと組み合わせて使用できます。 この場合、[ パスワード] は、事前に作成されたコンピューター アカウントのパスワードです。
SP1 および Windows Server 2008 を使用する Windows Vista より前では、セキュリティで保護されていない参加がドメイン コントローラーに対して認証されませんでした。 すべての通信は、null (認証されていない) セッションを使用して実行されました。 SP1 および Windows Server 2008 の Windows Vista 以降では、コンピューター アカウント名とパスワードを使用してドメイン コントローラーに対する認証が行われます。
-
NETSETUP_MACHINE_PWD_PASSED (0x00000080)
-
Password パラメーターで、ユーザー パスワードではなくローカル コンピューター アカウントのパスワードを指定することを示します。 このフラグは、セキュリティで保護されていない結合に対してのみ有効です。これは、NETSETUP_JOIN_UNSECURE フラグを設定することによっても指定する必要があります。
このフラグを設定した場合、参加操作が成功すると、その値が有効なマシン パスワードである場合、マシン パスワードは Password の値に設定されます。
-
NETSETUP_DEFER_SPN_SET (0x00000100)
-
この時点で、コンピューター オブジェクトのサービス プリンシパル名 (SPN) と DnsHostName プロパティを更新しないことを示します。
通常、これらのプロパティは結合操作中に更新されます。 代わりに、これらのプロパティは、 Rename メソッドの 後続の呼び出し中に更新する必要があります。 これらのプロパティは、名前の変更操作中に常に更新されます。
-
NETSETUP_JOIN_DC_ACCOUNT (0x00000200)
-
既存のアカウントがドメイン コントローラーである場合は、ドメイン参加を許可します。
注意
このフラグは、Windows Vista 以降でサポートされています。
-
NETSETUP_AMBIGUOUS_DC (0x00001000)
-
ドメインに参加するときは、レジストリで優先ドメイン コントローラーを設定しないでください。
注意
このフラグは、Windows 7、Windows Server 2008 R2 以降でサポートされています。
-
NETSETUP_NO_NETLOGON_CACHE (0x00002000)
-
ドメインに参加する場合、Netlogon キャッシュは作成されません。
注意
このフラグは、Windows 7、Windows Server 2008 R2 以降でサポートされています。
-
NETSETUP_DONT_CONTROL_SERVICES (0x00004000)
-
ドメインに参加するときに、Netlogon サービスを強制的に開始しないでください。
注意
このフラグは、Windows 7、Windows Server 2008 R2 以降でサポートされています。
-
NETSETUP_SET_MACHINE_NAME (0x00008000)
-
オフライン参加専用のドメインに参加する場合は、ターゲット コンピューターのホスト名と NetBIOS 名を設定します。
注意
このフラグは、Windows 7、Windows Server 2008 R2 以降でサポートされています。
-
NETSETUP_FORCE_SPN_SET (0x00010000)
-
ドメインに参加する場合は、ドメイン参加中に他の設定をオーバーライドし、サービス プリンシパル名 (SPN) を設定します。
注意
このフラグは、Windows 7、Windows Server 2008 R2 以降でサポートされています。
-
NETSETUP_NO_ACCT_REUSE (0x00020000)
-
ドメインに参加するときは、既存のアカウントを再利用しないでください。
注意
このフラグは、Windows 7、Windows Server 2008 R2 以降でサポートされています。
-
NETSETUP_IGNORE_UNSUPPORTED_FLAGS (0x10000000)
-
このビットが設定されている場合、認識できないフラグは JoinDomainOrWorkgroup 関数によって無視され、 NetJoinDomain はフラグが設定されていないかのように動作します。
戻り値
次のいずれかの数値を含む システム エラー コードを返します。 それ以外の数値はエラーを示します。 その他のエラー コードについては、「 WMI エラー定数」 または 「WbemErrorEnum」を参照してください。
-
Success
-
0
-
5
-
アクセスが拒否されました。
-
87
-
パラメーターが正しくありません。
-
110
-
システムは、指定されたオブジェクトを開くことができません。
-
1323
-
パスワードを更新できません。
-
1326
-
ログオンエラー: 不明なユーザー名または不正なパスワード。
-
1355
-
指定したドメインが存在しないか、またはアクセスできません。
-
2224
-
アカウントは既に存在します。
-
2691
-
マシンは既にドメインに参加しています。
-
2692
-
マシンは現在ドメインに参加していません。
-
WBEM_E_ENCRYPTED_CONNECTION_REQUIRED
-
0x80041087
Password と UserName が指定されていますが、認証レベルが RPC_C_AUTHN_LEVEL_PKT_PRIVACYされていません。 Visual Basic の場合、 wbemErrEncryptedConnectionRequired が返されます。
-
その他
-
1 4294967295
注釈
ドメインからワークグループにコンピューターを移動する場合は、このメソッドを呼び出してワークグループに参加させる ( JoinDomainOrWorkgroup を呼び出す) 前に、ドメインからコンピューターを削除する必要があります ( UnjoinDomainOrWorkgroup の呼び出し)。 このメソッドを呼び出した後、影響を受けるコンピューターを再起動して変更を適用します。
UserName と Password は null のままにできます。 ただし、WMI への接続の認証は、スクリプトの場合は 6、Visual Basic では WbemAuthenticationLevelPktPrivacy 、 およびwbemdisp.dll ライブラリを使用できるその他の言語である必要があります。 詳細については、「 VBScript を使用した既定のプロセス セキュリティ レベルの設定」を参照してください。
C++ では、認証を RPC_C_AUTHN_LEVEL_PKT_PRIVACY CoInitializeSecurity、プロセス全体、または CoSetProxyBlanket で設定して、IWbemServices プロキシに接続します。 詳細については、「 C++ を使用した認証の設定 」および「 IWbemServices およびその他のプロキシでのセキュリティの設定」を参照してください。
例
「 コンピューターをドメインに参加させる 」PowerShell の例では、コンピューターをドメインに参加させます。
次の VBScript コード例では、コンピューターをドメインに参加させ、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)
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista |
サポートされている最小のサーバー |
Windows Server 2008 |
名前空間 |
Root\CIMV2 |
MOF |
|
[DLL] |
|