NetRequestProvisioningPackageInstall 関数 (lmjoin.h)
NetRequestProvisioningPackageInstall 関数は、ボリュームにマウントされている Windows オペレーティング システム イメージを変更するために、コンピューター上でローカルに実行されます。 レジストリはイメージから読み込まれ、プロビジョニング パッケージ データが書き込まれ、オフライン ドメイン参加操作の完了フェーズ中に取得できます。
構文
NET_API_STATUS NET_API_FUNCTION NetRequestProvisioningPackageInstall(
[in] BYTE *pPackageBinData,
[in] DWORD dwPackageBinDataSize,
[in] DWORD dwProvisionOptions,
[in] LPCWSTR lpWindowsPath,
PVOID pvReserved
);
パラメーター
[in] pPackageBinData
オフライン ドメイン参加操作の完了フェーズ中に最終的なローカル状態の変更を処理するために、Windows オペレーティング システム イメージのレジストリを初期化するために必要なバッファーへのポインター。
pPackageBinData パラメーターで渡されたシリアル化されたメタデータの不透明なバイナリ BLOB は、NetCreateProvisioningPackage 関数によって返されます。
[in] dwPackageBinDataSize
pPackageBinData パラメーターが指すバッファーのサイズ (バイト単位)。
このパラメーターは NULL にすることはできません。
[in] dwProvisionOptions
この関数のオプションを定義するビット フラグのセット。 このパラメーターは、 Lmjoin.h ヘッダー ファイルで定義されている次の値の 1 つ以上を使用します。
[in] lpWindowsPath
レジストリ ハイブが配置されている Windows オペレーティング システム イメージへのパスを指定する NULL で終わる文字列へのポインター。 dwProvisionOptions パラメーターにNETSETUP_PROVISION_ONLINE_CALLERが含まれていない限り、このイメージはオフラインであり、現在起動されていない必要があります。その場合、ローカルで実行されているオペレーティング システム ディレクトリは許可されます。
このパスは、リモート サーバー上の UNC パスである可能性があります。
pvReserved
将来利用するために予約されています。
戻り値
関数が成功した場合、戻り値はNERR_Success。
関数が失敗した場合、戻り値には次のいずれかの ネットワーク管理エラー コードを指定できます。
リターン コード | 説明 |
---|---|
|
オフライン結合完了情報が見つかりませんでした。 |
|
オフライン参加完了情報が正しくありません。 |
|
オフライン参加情報を作成できません。 指定したパスの場所へのアクセス権と、その内容を変更するためのアクセス許可があることを確認してください。 管理者特権で実行する必要がある場合があります。 |
|
保存されているドメイン参加情報が不完全または不適切でした。 |
|
オフライン参加操作は正常に完了しましたが、再起動が必要です。 |
|
オフライン参加操作が保留中でなかった。 |
|
ローカル コンピューターで 1 つ以上の要求されたコンピューターまたはドメイン名の値を設定できません。 |
|
結合完了情報に保存されている値に対して、現在のマシンのホスト名を確認できませんでした。 |
|
指定したオフライン レジストリ ハイブを読み込むことができません。 指定したパスの場所へのアクセス権と、その内容を変更するためのアクセス許可があることを確認してください。 管理者特権で実行する必要がある場合があります。 |
|
この操作の最小セッション セキュリティ要件が満たされませんでした。 |
|
コンピューター アカウントのプロビジョニング BLOB バージョンはサポートされていません。 |
解説
NetRequestProvisioningPackageInstall 関数は、オフライン ドメイン参加操作で Windows 8 でサポートされています。 Windows 7 の場合は、 NetRequestOfflineDomainJoin を使用します。
オフライン ドメイン参加シナリオでは、次の 2 つの関数を使用します。
- NetCreateProvisioningPackage は、Active Directory でコンピューター オブジェクトを作成および構成するために必要なネットワーク操作を実行するために最初に呼び出されるプロビジョニング関数です。 NetCreateProvisioningPackage からの出力は、次の手順で使用されるパッケージです。
- NetRequestProvisioningPackageInstall は、インストール時に使用するために NetCreateProvisioningPackage プロビジョニング関数からの出力を Windows オペレーティング システム イメージに挿入するために呼び出されます。
NetCreateProvisioningPackage 関数は、ドメイン内のマシン アカウントを作成または再利用し、必要なすべてのメタデータを収集してパッケージに返します。 パッケージは、オフライン ドメイン参加要求操作によって使用でき、ネットワーク操作なしで最初の起動時にドメイン参加を完了するために必要なすべての入力を提供できます (ローカル状態の更新のみ)。
セキュリティに関する注意: NetCreateProvisioningPackage 関数によって作成されたパッケージには、非常に機密性の高いデータが含まれています。 プレーンテキスト パスワードと同じように安全に扱う必要があります。 パッケージには、コンピューター アカウントのパスワードと、ドメイン名、ドメイン コントローラーの名前、ドメインのセキュリティ ID (SID) など、ドメインに関するその他の情報が含まれています。 パッケージが物理的またはネットワーク経由で転送されている場合は、安全に転送するように注意する必要があります。 この設計では、このデータをセキュリティで保護するためのプロビジョニングは行われません。 この問題は現在、ドメイン ユーザー パスワードを含む多数のシークレットを保持できる無人セットアップ応答ファイルで存在します。 呼び出し元はパッケージをセキュリティで保護する必要があります。 この問題の解決策はさまざまです。 たとえば、事前交換されたキーを使用して、コンシューマーとプロビジョニング エンティティ間のセッションを暗号化し、パッケージの安全な転送を可能にすることができます。
NetCreateProvisioningPackage 関数によって pPackageBinData パラメーターで返されるパッケージは、異なるバージョンの Windows (クライアントの参加、マシンのプロビジョニング、ドメイン コントローラーの使用など) 間の相互運用性と保守性のシナリオを可能にするためにバージョン管理されています。 現在、オフライン結合シナリオでは、 NetCreateProvisioningPackage 関数によって返されるパッケージの有効期間は制限されていません。
プロビジョニング プロセスのすべてのフェーズは、ローカル コンピューター上の NetSetup.log ファイルに追加されます。 プロビジョニング プロセスには、プロビジョニング パッケージが作成されるコンピューター、パッケージのインストールを要求するコンピューター、パッケージがインストールされているコンピューターの 3 つの異なるコンピューターを含めることができます。 実行された操作に従って、3 つのコンピューターすべてに NetSetup.log ファイル情報が格納されます。 これらのファイルの内容を確認することは、オンラインとオフラインのプロビジョニング エラーをトラブルシューティングする最も一般的な方法です。 管理者が実行したプロビジョニング操作は、%WINDIR%\Debug の NetSetup.log ファイルに記録されます。 管理者以外が実行したプロビジョニング操作は、%USERPROFILE%\Debug フォルダーの NetSetup.log ファイルに記録されます。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | lmjoin.h (Lm.h を含む) |
Library | Netapi32.lib |
[DLL] | Netapi32.dll |
関連項目
NetProvisionComputerAccount