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 で終わる定数文字列へのポインターを指定します。 このパラメーターを指定する場合、文字列には完全なパスが含まれている必要があります。それ以外の場合は AccentNULL にする必要があります。

例: "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

PasswordUserName が指定されていますが、認証レベルが RPC_C_AUTHN_LEVEL_PKT_PRIVACYされていません。 Visual Basic の場合、 wbemErrEncryptedConnectionRequired が返されます。

その他

1 4294967295

注釈

ドメインからワークグループにコンピューターを移動する場合は、このメソッドを呼び出してワークグループに参加させる ( JoinDomainOrWorkgroup を呼び出す) 前に、ドメインからコンピューターを削除する必要があります ( UnjoinDomainOrWorkgroup の呼び出し)。 このメソッドを呼び出した後、影響を受けるコンピューターを再起動して変更を適用します。

UserNamePasswordnull のままにできます。 ただし、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
CIMWin32.mof
[DLL]
CIMWin32.dll

こちらもご覧ください

Win32_ComputerSystem

UnjoinDomainOrWorkgroup メソッド