私はLinuxの人です、そして私がWindowsで何かをしようとするとき、私はとても迷っています。次のリンクを作成しようとしています。
mklink /d C:\backup\data \\myth\backup\data
しかし、私はこの操作を実行するのに十分な特権を持っていません。 Windows 7で十分な特権を取得する方法
更新:
C:\ backup\dataを右クリックして、認証されたユーザーの権限をフルアクセスに変更し、マシンを再起動して、運が悪くてもコマンドを再試行しました。他に何か提案がありますか?
ここで述べたように、
シンボリックリンクの作成にはSeCreateSymbolicLinkPrivilege(“シンボリックリンクの作成”)が必要です。これはデフォルトで管理者にのみ付与されます(ただしセキュリティポリシーを使用して変更できます)。
ポリシーを変更するには
Start
→Run
を右クリックしてsecpol.msc
を起動してください。
Security Settings → Local Policies → User Rights Assignment
を開き、Create symbolic links
(これはSeCreateSymbolicLinkPrivilege
を表します)を選択します。
Users
グループ全体)をリストに追加します。ログアウトして再度ログインすると、変更が適用されます。
シンボリックリンクを作成できなくても 'Junction'を作成できることを発見しました。
mklink [/D] /J junctionname filename
ここで、/ Jは 'junctionの作成'を示し、/ Dは名前付きファイルがディレクトリーの場合です。 (私のユーザーは現在管理者です)
しかし、 'bat'ファイルへのジャンクションは実行可能であるようには見えないので、これは実際には使用されていません。
これがなぜなのか、あるいはOPの問題に対する代替アプローチを提供するためにどのように修正できるのかを誰かが理解していますか?
管理者以外の人しかできないことがわかりました。非管理者を追加してシンボリックリンクを作成し、非管理者として実行します。管理者以外の権限を持つユーザーを追加する必要があります。その後、あなたは非管理者のターゲットに許可を与えるので、彼はrunasのmklinkを行うことができます。
私のマシン上で "guest"ユーザーを作成できなかっただけでなく、私のツールのすべてのユーザーに自分のマシン上でもそうするように依頼することができなかったので、上記の解決策は私にはうまくいきませんでした。管理者コンソールを使用するように要求することも合理的ではありません。
私の解決策はelevate.cmdとelevate.vbsを使うことです。
elevate.cmd cmd /c "cd /d LINK_DIR && mklink /D LINK_NAME LINK_TARGET_PATH"
短所:elevate.cmdはすぐに戻りますが、UACダイアログへの応答に時間がかかります。これは私に「あなたはまだUAC対話を大丈夫でしたか?」を加えることを強いました。私のスクリプトに質問してください。次のコマンドの終了コードを確認して、「elevate.cmd」をスキップすることができます。whoami /groups | find "S-1-16-12288"
(終了コード0は、管理コンソールを使用していることを意味します)。
今日もこの問題に遭遇しました。私は、コンピュータ上にシンボリックリンクを作成しようとするNAntビルドタスクを持っていました。特権がないため拒否されました。私は私の問題を解決するのに役立ったこの投稿を見つけました: http://josh.mainelan.net/tag/mklink/ 。
関連セクション:
- 実行ボックスを開き、「secpol.msc」と入力して[OK]をクリックします。
- [セキュリティの設定\ローカルポリシー\ユーザー権利の割り当て]フォルダに移動します。
- 「シンボリックリンクの作成」を見つけて、それにUsersグループを追加します。
これをした後あなたはあなたのコンピュータか何かを再起動する必要があると思います。
このコマンドを実行するには、管理者としてコマンドプロンプトを実行します。
スタートメニューに「cmd」(またはコマンド)と入力して右クリックし、「管理者として実行」を選択します。
実行したコマンドは管理者権限で実行されます。