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 つ以上を使用します。

説明
NETSETUP_PROVISION_ONLINE_CALLER
0x40000000
lpWindowsPath パラメーターが、アクセス可能なボリュームにマウントされているオフライン Windows オペレーティング システム イメージではなく、現在実行中の Windows オペレーティング システム ディレクトリを参照している場合は、このフラグが必要です。 このフラグを指定する場合は、ローカル Administrators グループのメンバーによって NetRequestProvisioningPackageInstall 関数を呼び出す必要があります。

[in] lpWindowsPath

レジストリ ハイブが配置されている Windows オペレーティング システム イメージへのパスを指定する NULL で終わる文字列へのポインター。 dwProvisionOptions パラメーターにNETSETUP_PROVISION_ONLINE_CALLERが含まれていない限り、このイメージはオフラインであり、現在起動されていない必要があります。その場合、ローカルで実行されているオペレーティング システム ディレクトリは許可されます。

このパスは、リモート サーバー上の UNC パスである可能性があります。

pvReserved

将来利用するために予約されています。

戻り値

関数が成功した場合、戻り値はNERR_Success。

関数が失敗した場合、戻り値には次のいずれかの ネットワーク管理エラー コードを指定できます。

リターン コード 説明
NERR_NoOfflineJoinInfo
オフライン結合完了情報が見つかりませんでした。
NERR_BadOfflineJoinInfo
オフライン参加完了情報が正しくありません。
NERR_CantCreateJoinInfo
オフライン参加情報を作成できません。 指定したパスの場所へのアクセス権と、その内容を変更するためのアクセス許可があることを確認してください。 管理者特権で実行する必要がある場合があります。
NERR_BadDomainJoinInfo
保存されているドメイン参加情報が不完全または不適切でした。
NERR_JoinPerformedMustRestart
オフライン参加操作は正常に完了しましたが、再起動が必要です。
NERR_NoJoinPending
オフライン参加操作が保留中でなかった。
NERR_ValuesNotSet
ローカル コンピューターで 1 つ以上の要求されたコンピューターまたはドメイン名の値を設定できません。
NERR_CantVerifyHostname
結合完了情報に保存されている値に対して、現在のマシンのホスト名を確認できませんでした。
NERR_CantLoadOfflineHive
指定したオフライン レジストリ ハイブを読み込むことができません。 指定したパスの場所へのアクセス権と、その内容を変更するためのアクセス許可があることを確認してください。 管理者特権で実行する必要がある場合があります。
NERR_ConnectionInsecure
この操作の最小セッション セキュリティ要件が満たされませんでした。
NERR_ProvisioningBlobUnsupported
コンピューター アカウントのプロビジョニング BLOB バージョンはサポートされていません。

解説

NetRequestProvisioningPackageInstall 関数は、オフライン ドメイン参加操作で Windows 8 でサポートされています。 Windows 7 の場合は、 NetRequestOfflineDomainJoin を使用します。

オフライン ドメイン参加シナリオでは、次の 2 つの関数を使用します。

  • NetCreateProvisioningPackage は、Active Directory でコンピューター オブジェクトを作成および構成するために必要なネットワーク操作を実行するために最初に呼び出されるプロビジョニング関数です。 NetCreateProvisioningPackage からの出力は、次の手順で使用されるパッケージです。
  • NetRequestProvisioningPackageInstall は、インストール時に使用するために NetCreateProvisioningPackage プロビジョニング関数からの出力を Windows オペレーティング システム イメージに挿入するために呼び出されます。
Windows 初期化コードに対する変更は、この保存された状態を検出し、ドメイン参加のローカル専用部分に影響を与え、パッケージに存在する可能性がある証明書とポリシー情報をインストールします。

NetCreateProvisioningPackage 関数は、ドメイン内のマシン アカウントを作成または再利用し、必要なすべてのメタデータを収集してパッケージに返します。 パッケージは、オフライン ドメイン参加要求操作によって使用でき、ネットワーク操作なしで最初の起動時にドメイン参加を完了するために必要なすべての入力を提供できます (ローカル状態の更新のみ)。

セキュリティに関する注意: NetCreateProvisioningPackage 関数によって作成されたパッケージには、非常に機密性の高いデータが含まれています。 プレーンテキスト パスワードと同じように安全に扱う必要があります。 パッケージには、コンピューター アカウントのパスワードと、ドメイン名、ドメイン コントローラーの名前、ドメインのセキュリティ ID (SID) など、ドメインに関するその他の情報が含まれています。 パッケージが物理的またはネットワーク経由で転送されている場合は、安全に転送するように注意する必要があります。 この設計では、このデータをセキュリティで保護するためのプロビジョニングは行われません。 この問題は現在、ドメイン ユーザー パスワードを含む多数のシークレットを保持できる無人セットアップ応答ファイルで存在します。 呼び出し元はパッケージをセキュリティで保護する必要があります。 この問題の解決策はさまざまです。 たとえば、事前交換されたキーを使用して、コンシューマーとプロビジョニング エンティティ間のセッションを暗号化し、パッケージの安全な転送を可能にすることができます。

NetCreateProvisioningPackage 関数によって pPackageBinData パラメーターで返されるパッケージは、異なるバージョンの Windows (クライアントの参加、マシンのプロビジョニング、ドメイン コントローラーの使用など) 間の相互運用性と保守性のシナリオを可能にするためにバージョン管理されています。 現在、オフライン結合シナリオでは、 NetCreateProvisioningPackage 関数によって返されるパッケージの有効期間は制限されていません。

プロビジョニング プロセスのすべてのフェーズは、ローカル コンピューター上の NetSetup.log ファイルに追加されます。 プロビジョニング プロセスには、プロビジョニング パッケージが作成されるコンピューター、パッケージのインストールを要求するコンピューター、パッケージがインストールされているコンピューターの 3 つの異なるコンピューターを含めることができます。 実行された操作に従って、3 つのコンピューターすべてに NetSetup.log ファイル情報が格納されます。 これらのファイルの内容を確認することは、オンラインとオフラインのプロビジョニング エラーをトラブルシューティングする最も一般的な方法です。 管理者が実行したプロビジョニング操作は、%WINDIR%\DebugNetSetup.log ファイルに記録されます。 管理者以外が実行したプロビジョニング操作は、%USERPROFILE%\Debug フォルダーの NetSetup.log ファイルに記録されます。

要件

   
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー lmjoin.h (Lm.h を含む)
Library Netapi32.lib
[DLL] Netapi32.dll

関連項目

NETSETUP_PROVISIONING_PARAMS

NetCreateProvisioningPackage

NetJoinDomain

NetProvisionComputerAccount

NetRenameMachineInDomain

NetRequestOfflineDomainJoin

NetUnjoinDomain

ネットワーク管理機能

ネットワーク管理の概要