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