エクスプローラから「別のユーザーとして実行」する。
RunAsコマンドは引数でユーザ名を与えねばならず、エクスプローラから起動してユーザを選択することができません。:-(
PowerShellを使えば、GUIでユーザを選択することができます。
例えば、コマンドラインでは、
RunAsUser.cmd コマンド [引数...]
set x=%*
powershell "start-process -credential $null 'cmd' '/c %x:"=\""%'"
これをコンテキストメニューから利用するには、関連付けに、
HKCR\ファイルタイプ\shell\RunAsUser\command
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "start-process -credential $null 'cmd' '/c \"%1\" %*'"
「送る」から利用するには、ショートカット RunAsUser.lnk のリンク先に、
cmd.exe /v:on /c for /l %n in (1,1,2) do if %n==2 (for %y in (!x!) do powershell "start-process -credential $null 'cmd' '/c \""%~y\""'") else set x=
このとき、コンソール画面が開きますが、それが煩わしいときは、-windowstyle hidden を追加します。
関連付け
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden "start-process -credential $null 'cmd' '/c \"%1\" %*'"
ショートカット
cmd.exe /v:on /c for /l %n in (1,1,2) do if %n==2 (for %y in (!x!) do powershell -windowstyle hidden "start-process -credential $null 'cmd' '/c \""%~y\""'") else set x=
それでも、コンソール画面が一時開きます。そこで、ショートカットの「ウィンドウの大きさ」を「最小化」にしておきます。
« 環境変数を遅延展開する第3の方法とは? | トップページ | 「別のユーザーとして実行」して「管理者として実行」する。 »