web-dev-qa-db-ja.com

Windows 7でmklinkを実行すると、アクセスが拒否されましたエラー

私のホームディレクトリは、ユーザーphiとしてc:\ Users\phiで、c:\ Users\abcにディレクトリを作成しました。 c:\ Users\phi\helloからc:\ Users\abc\helloへのシンボリックリンクが必要です。

次のコマンドを実行します

 mklink c:\ Users\abc\hello c:\ Users\phi\hello 

しかし、Access is deniedエラーが発生します。ユーザーphiは管理者なので、c:\ Users\abcにファイルを書き込むことに問題はありません。

どうしてこれなの? mklinkする方法は?

36
prosseek

サイト から回答が見つかりました。つまり、管理者としてcmd.exeを実行する必要がありました。

25
prosseek

重要なポイント:

  1. UACがオンになっている場合は、管理者として実行する必要があります。 (または、少なくともリンクの作成を許可するセキュリティポリシー)。
  2. /Dリンクがディレクトリ用である場合、スイッチを使用する必要があります。
  3. 最初のパラメーターはリンク、2番目のパラメーターは元のフォルダーです。
  4. リンクはすでに存在していてはいけません。

使用法:

mklink /D c:\users\me\new_link\ c:\users\me\original_folder\
32
rpattabi

ジャンクションを作成しようとすると、同じエラーが表示されることに注意してください。 マップされたドライブ。 MSDNのこのページの例に出会うまで、私はこれについて自分の髪を引き出していました ハードリンクとジャンクション

短い答え:ローカルボリュームでのみmklinkを使用できます。

21
rburte

Windows 7以降では、リンクとジャンクションを作成するには特別なセキュリティ権限が必要です。管理者は、secpol.mscを使用してLocal Policies\User Rights Assignment\Create symbolic linksを設定するユーザーにこの権限を付与できます。

ユーザーがその時にログオンしている場合、リンクを作成できるようにするには、ログオフしてから再度ログオンする必要があります。

リンクが一部のアプリのセキュリティの弱点を露呈する可能性があるという警告に注意してください-私はそれらの弱点が何であるかを調査していません。

15
Lawrence Dol

Linuxを頻繁に使用している場合は、Windowsでパラメーターが交換されることに注意してください。

間違った順序を使用すると、「アクセス拒否」も表示されます。オリジナルが既に存在する場所にシンボリックリンクを作成しようとしているためです。

ウィンドウズ: mklink /D link original

Linux:ln -s original link

10
Sascha

これは、誤ってファイルに対してmklink /Dを実行したためです。リンクはエクスプローラーには表示されませんでしたが、Windowsエクスプローラーには表示されました。コマンドプロンプトを使用して、元の無効なディレクトリリンクを削除し、/Dオプションなしで再作成しました。

ちなみに、cmd.exeを管理者として実行していても、 "アクセスが拒否されました"というエラーが表示されました。

4
Peter Joles

管理者としてmklinkを実行することとは別に、リンク先のフォルダへの十分なアクセス許可があることを確認する必要もあります。

1
Martin Wildam

実行すると:

mklink/j C:\ path_to_link C:\ destination

うまくいくはずです。私の場合、powershellとcmdは同じ出力を生成しました。 PowerShellの場合は、コマンドを

cmd/c mklink ...

1
Simons0n

あなたがしなければならないディレクトリ:

mklink /D c:\Users\abc\hello c:\Users\phi\hello
0
Zequez

奇妙に聞こえるかもしれませんが、作成しようとしているファイルまたはフォルダーがまだ存在していないことを確認してください。 cmdプロンプトで見落としがちな場合もあります。

0