特権は、プライマリ トークンまたは偽装トークンの 2 つの方法で変更できます。
- AdjustTokenPrivileges 関数を使用して、特権を有効、無効、または削除します。
- CreateRestrictedToken 関数を使用して特権を制限または削除します。
AdjustTokenPrivileges は、トークンに特権を追加できません。 現在無効になっている既存の特権のみを有効にしたり、現在有効になっている既存の特権を無効にしたり、既存の特権を削除したりすることができます。 AdjustTokenPrivileges で削除された特権は、後で再び実行可能にすることはできません。 例については、「C++での特権の有効化と無効化」を参照してください。
ユーザー アカウントに権限を割り当てるには、「アカウントへの権限の割り当て」を参照してください。
CreateRestrictedToken には、次のようなより広範な機能があります。
- 特権の削除。 特権の削除は、無効にした場合と同じではないことに注意してください。 トークンから特権を削除した後は、元に戻すことはできません。
- トークン内の SID に拒否専用属性をアタッチする。 これは、特定のグループまたはアカウントを禁止する効果があります。たとえば、Everyone グループが特定のファイルへのアクセスを削除することを拒否します。 SID の制限の詳細については、「アクセス トークン の SID 属性をする」を参照してください。
- トークン内の制限 SID のリストを指定する。 SID の制限については、「制限付きトークン」を参照してください。