LsaStorePrivateData 関数 (ntsecapi.h)

LSA プライベート データ関数や汎用データの暗号化と暗号化解除は使用しないでください。 代わりに、 CryptProtectData 関数と CryptUnprotectData 関数を 使用します。 「シークレット オブジェクト データ モデル」に記載されている LSA シークレットを操作する必要がある場合にのみ、LSA プライベート データ関数を使用します

構文

NTSTATUS LsaStorePrivateData(
  [in] LSA_HANDLE          PolicyHandle,
  [in] PLSA_UNICODE_STRING KeyName,
  [in] PLSA_UNICODE_STRING PrivateData
);

パラメーター

[in] PolicyHandle

Policy オブジェクトへのハンドル。 KeyName パラメーターで指定されたキーの下にデータを初めて格納する場合は、ハンドルにPOLICY_CREATE_SECRETアクセス権が必要です。 詳細については、「 ポリシー オブジェクト ハンドルを開く」を参照してください。

[in] KeyName

プライベート データが格納されているキーの名前を含む LSA_UNICODE_STRING 構造体へのポインター。

[in] PrivateData

格納するプライベート データを含む LSA_UNICODE_STRING 構造体へのポインター。 関数は、このデータを格納する前に暗号化します。

このパラメーターが NULL の場合、関数はキーの下に格納されているすべてのプライベート データを削除し、キーを削除します。 キーからデータを取得しようとすると、STATUS_OBJECT_NAME_NOT_FOUNDエラー コードが返されます。

戻り値

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

関数が失敗した場合、戻り値は NTSTATUS コードです。 詳細については、「 LSA ポリシー関数の戻り値」を参照してください。

LsaNtStatusToWinError 関数を使用して、NTSTATUS コードを Windows エラー コードに変換できます。

注釈

LsaStorePrivateData 関数は、サーバー アプリケーションがクライアントとコンピューターのパスワードを格納するために使用できます。

「プライベート データ オブジェクト」で説明されているように、プライベート データ オブジェクトには、ローカル、グローバル、マシンの 3 つの特殊な型が含まれます。 特殊化されたオブジェクトは、キー名のプレフィックス (ローカル オブジェクトの場合は "L$")、グローバル オブジェクトの場合は "G$"、マシン オブジェクトの場合は "M$" で識別されます。 ローカル オブジェクトにリモートでアクセスすることはできません。 マシン オブジェクトにアクセスできるのは、オペレーティング システムだけです。

これらのプレフィックスに加えて、次の値はローカル オブジェクトまたはマシン オブジェクトも示します。 これらの値は下位互換性のためにサポートされており、新しいローカル オブジェクトまたはマシン オブジェクトを作成するときに使用しないでください。 ローカル プライベート データ オブジェクトのキー名は、"$machine.acc"、"SAC"、"SAI"、"SANSC"、または "RasDialParms" または "RasCredentials" で始まる場合もあります。 マシン オブジェクトのキー名は、"NL$" または "sc" で始まる場合もあります。

上記のキー名規則を使用しないプライベート データ オブジェクトにはリモートでアクセスでき、他のドメインにはレプリケートされません。

LsaStorePrivateData 関数によって格納されるデータは、絶対に保護されていません。 ただし、データは格納される前に暗号化され、キーには DACL があり、作成者と管理者のみがデータを読み取ることができます。

LsaRetrievePrivateData 関数を使用して、LsaStorePrivateData によって格納された値を取得します。

要件

要件 値
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー ntsecapi.h
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

LSA_UNICODE_STRING

LsaRetrievePrivateData