NetRequestOfflineDomainJoin 関数 (lmjoin.h)
NetRequestOfflineDomainJoin 関数は、ボリュームにマウントされている Windows オペレーティング システム イメージを変更するために、コンピューター上でローカルに実行されます。 レジストリはイメージから読み込まれ、プロビジョニング BLOB データが書き込まれ、オフライン ドメイン参加操作の完了フェーズ中に取得できます。
構文
NET_API_STATUS NET_API_FUNCTION NetRequestOfflineDomainJoin(
[in] BYTE *pProvisionBinData,
[in] DWORD cbProvisionBinDataSize,
[in] DWORD dwOptions,
[in] LPCWSTR lpWindowsPath
);
パラメーター
[in] pProvisionBinData
オフライン ドメイン参加操作の完了フェーズ中に最終的なローカル状態の変更を処理するために Windows オペレーティング システム イメージのレジストリを初期化するために必要なバッファーへのポインター。
pProvisionBinData パラメーターで渡されるシリアル化されたメタデータの不透明なバイナリ BLOB は、NetProvisionComputerAccount 関数によって返されます。
[in] cbProvisionBinDataSize
pProvisionBinData パラメーターが指すバッファーのサイズ (バイト単位)。
このパラメーターは NULL にすることはできません。
[in] dwOptions
この関数のオプションを定義するビット フラグのセット。 このパラメーターには、 Lmjoin.h ヘッダー ファイルで定義されている次の値のうち 1 つ以上を指定できます。
[in] lpWindowsPath
レジストリ ハイブが配置されている Windows オペレーティング システム イメージへのパスを指定する、null で終わる定数文字列へのポインター。 dwOptions パラメーターにNETSETUP_PROVISION_ONLINE_CALLERが含まれている場合、ローカルで実行されているオペレーティング システム ディレクトリが許可されている場合を除き、このイメージはオフラインであり、現在起動されていない必要があります。
このパスは、リモート サーバー上の UNC パスである可能性があります。
戻り値
関数が成功した場合、戻り値はNERR_Success。
関数が失敗した場合、戻り値には、次のいずれかのエラー コードまたは システム エラー コードのいずれかを指定できます。
リターン コード | 説明 |
---|---|
|
アクセスが拒否されました。 呼び出し元に操作を完了するための十分な特権がない場合、このエラーが返されます。 |
|
要求された操作には、権限の昇格が必要です。 |
|
パラメーターが正しくありません。 pProvisionBinData、cbProvisionBinDataSize、または lpWindowsPath パラメーターが NULL の場合、このエラーが返されます。 このエラーは、 pProvisionBinData パラメーターが指すバッファーに、ドメイン、マシン アカウント名、またはマシン アカウント パスワードの有効なデータが BLOB に含まれていない場合にも返されます。 このエラーは、 lpWindowsPath パラメーターを指す文字列が Windows オペレーティング システム イメージへのパスを指定していない場合にも返されます。 |
|
要求はサポートされていません。 指定したサーバーがこの操作をサポートしていない場合、このエラーが返されます。 たとえば、 lpWindowsPath パラメーターが、ドメイン コントローラーとして構成された Windows インストールを参照している場合です。 |
|
ワークステーション サービスが開始されていません。 |
解説
NetRequestOfflineDomainJoin 関数は、オフライン ドメイン参加操作で Windows 7 でサポートされています。
NetRequestOfflineDomainJoin 関数は、ボリュームにマウントされている Windows オペレーティング システム イメージを変更するために、コンピューター上でローカルに使用されます。 イメージのレジストリが読み込まれ、プロビジョニング BLOB データが書き込まれ、オフライン ドメイン参加操作の完了フェーズ中に取得できます。 オフライン ドメイン参加シナリオでは、次のようにこれらの関数を使用します。
- NetProvisionComputerAccount は、Active Directory でコンピューター オブジェクトを作成および構成するために必要なネットワーク操作を実行するために最初に呼び出されるプロビジョニング関数です。 NetProvisionComputerAccount からの出力は、次の手順で使用されるシリアル化されたメタデータの不透明なバイナリ BLOB です。
- その後、イメージ初期化関数である NetRequestOfflineDomainJoin が呼び出され、インストール時に使用される Windows オペレーティング システム イメージに NetProvisionComputerAccount プロビジョニング関数からの出力が挿入されます。 Windows 初期化コードを変更すると、この保存された状態が検出され、ドメイン参加のローカル部分のみに影響します。
NetProvisionComputerAccount 関数は、ドメイン内のマシン アカウントを作成または再利用し、必要なすべてのメタデータを収集し、不透明なバージョン管理されたバイナリ BLOB で返すか、無人セットアップ応答ファイルに埋め込むためのテキストとして返します。 不透明なバイナリ BLOB は、オフライン ドメイン参加要求操作によって使用でき、ネットワーク操作なしで最初の起動時にドメイン参加を完了するために必要なすべての入力を提供します (ローカル状態の更新のみ)。 BLOB には、基本的にクリアにマシン アカウントのパスワードマテリアルが含まれていることに注意してください。 この設計では、このデータをセキュリティで保護するためのプロビジョニングは行われません。 この問題は現在、ドメイン ユーザー パスワードを含む多くのシークレットを保持できる無人セットアップ応答ファイルに存在します。 呼び出し元は、BLOB と無人セットアップ ファイルをセキュリティで保護する必要があります。 この問題の解決策はさまざまです。 たとえば、事前に交換されたキーを使用して、コンシューマーとプロビジョニング エンティティの間のセッションを暗号化し、不透明な BLOB の安全な転送を可能にすることができます。
NetProvisionComputerAccount 関数によって pProvisionBinData パラメーターで返される不透明な BLOB は、さまざまなバージョンの Windows (クライアント、プロビジョニング マシン、ドメイン コントローラーの結合) 間の相互運用性とサービス性のシナリオを可能にするためにバージョン管理されています。 現在、オフライン参加シナリオでは、 NetProvisionComputerAccount 関数によって返される BLOB の有効期間は制限されていません。
オフライン ドメイン参加操作の詳細については、「 オフライン ドメイン参加のステップ バイ ステップ ガイド」を参照してください。
要件
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | サポートなし |
対象プラットフォーム | Windows |
ヘッダー | lmjoin.h (include Lm.h) |
Library | Netapi32.lib |
[DLL] | Netapi32.dll |