web-dev-qa-db-ja.com

管理者コマンドプロンプトなしでWindows8.1でシンボリックリンクを作成するにはどうすればよいですか?

管理者としてcmd.exeを実行しなくても、Windows 8.1でシンボリックリンクを作成しようとしたときに問題が発生した場合は、誰かが修正してくれることを願っています。

通常のコマンドプロンプトからシンボリックリンクを作成しようとすると、通常のアクセス許可応答が返されます...

C:\Users\MyUser>mklink symlink.txt mytextfile.txt
You do not have sufficient privilege to perform this operation.

...そしてそれは管理コマンドプロンプトから機能します(期待通り)...

C:\Users\MyUser>mklink symlink.txt mytextfile.txt
symbolic link created for symlink.txt <<===>> mytextfile.txt

ただし、通常の修正のいずれもWindows 8.1で機能しているようには見えません(少なくとも、私が見つけた修正)。

Windows 7 Home Premiumで通常のユーザーとしてリンクを作成するにはどうすればよいですか が、効果がないようです。 。

また、UACを最低レベルに設定しています。

他に足りないものはありますか?

8
Karl Nicoll

「フィルタリングされた」トークンに権限がありません

UACを無効にします。またはUACを有効にした場合:SECreateSymbolicLinkPrivilegeを有効にした後、non-adminアカウントで試してください。

説明
それはキャッチ17です。私がMSドキュメントを読んだ方法から。

ユーザーアカウントにブラックリストに登録された有名な管理者グループがある場合、2番目の昇格されていないトークンが作成されます。

昇格されたトークンから昇格されていないトークンが生成されると、関連するSeCreateSymbolicLinkPrivilegeが除外されます。

MSDNから: ユーザーインターフェイス特権の分離(UIPI)

次のいずれかに該当する場合、Windowsはユーザーに対して2つのアクセストークンを作成します。ユーザーのアカウントに次のRIDのいずれかが含まれている。
DOMAIN_GROUP_RID_ADMINS
[...]
フィルターされたトークンに含まれる特権は、元のトークンに上記の制限付きRIDSが含まれていたかどうかに基づいています。制限されたRIDのいずれかがトークンに含まれている場合、以下を除くすべての特権が削除されます。
SeChangeNotifyPrivilege
SeShutdownPrivilege
SeUndockPrivilege
SeReserveProcessorPrivilege
SeTimeZonePrivilege

したがって、解決策は、2番目のトークン生成を完全に無効にすることです。上記のすべてのグループをアカウントから削除するか、UACを完全に無効にします。

(免責事項:Paul Bettsが作業を行いました。詳細を追加しました。ここで彼の回答を参照してください: https://stackoverflow.com/questions/15320550/secreatesymboliclinkprivilege-ignored-on-windows-8

9
StackzOfZtuff