LoginSignup
0
0

More than 1 year has passed since last update.

Windowsで「管理者として実行する」してないプロセス内からシンボリックリンクを作成させる

Last updated at Posted at 2022-05-30

Windowsでは mklink でシンボリックリンクを作成するのに権限を求められる。
長年謎だった、権限のない外部コマンド内からシンボリックリンクを作成する方法が分かったので共有。
(権限を得るために一回閉じて「管理者として実行する」で立ち上げ直さなければいけないと思っていたがそうする必要がなくなった。)

powershell -command start-process cmd.exe '/c mklink "<TO>" "<FROM>"' -verb runas

上記の<TO> がリンク作成先、<FROM> がリンク元ファイル(適度読み替えてください)。
*nix 系の lnmv と引数の位置が逆だから気を付けて。

引数を最後に持ってきたい場合は -argumentlist を使う

powershell -command start-process cmd.exe -verb runas -argumentlist '/c mklink "<TO>" "<FROM>"'
  • 「このアプリがデバイスに変更を加えることを許可しますか」というユーザアカウント制御が現れるので対話用。
  • 細かい理屈は分からないが powershell が UAC の権限を昇格しているらしい(-verb runas のところがstart-process の権限を昇格)。
  • runas /user:administrator mklink とやる手法は Windows Vista 以降はadministratorが無効化されているしやるのに設定を変更しなければいけないらしくてお手軽(実用的)とは言い難い。

参考:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0