標準のユーザーアカウント(つまり、昇格されていない)がCreateSymbolicLinkを呼び出せるようにしたいと思います。
ただし、Win8では、ローカルグループポリシーの下でSeCreateSymbolicLinkPrivilege(secpol.mscの「CreateSymbolic Links」)に「Everyone」を追加しても、STATUS_PRIVILEGE_NOT_HELDになります。なんで?
標準のユーザーアカウント(つまり、昇格されていない)がCreateSymbolicLinkを呼び出せるようにしたいと思います。
ただし、Win8では、ローカルグループポリシーの下でSeCreateSymbolicLinkPrivilege(secpol.mscの「CreateSymbolic Links」)に「Everyone」を追加しても、STATUS_PRIVILEGE_NOT_HELDになります。なんで?
クリスチャンが疑ったように、それは確かにUACです。
MSDN: ユーザー アカウント制御の互換性のための Windows Vista アプリケーション開発要件:
フィルター処理されたトークンに含まれる特権は、元のトークンに上記の制限付き RIDS が含まれているかどうかに基づいています (編集: 昇格されていない管理者の場合は別名)。制限された RID のいずれかがトークンに含まれていた場合、以下を除くすべての特権が削除されます。
- SeChangeNotifyPrivilege
- SeShutdownPrivilege
- SeUndockPrivilege
- SeReserveProcessorPrivilege
- SeTimeZonePrivilege