回答:
PowerShellがオプションの場合、PowerShellスクリプトは資格情報の入力を求め、それらの資格情報を使用してプロセスを開始できます。
Start-Process -FilePath "C:\Windows\notepad.exe" -Credential (Get-Credential)
ユーザーにはこのプロンプトが表示され、プロセスが開始されます。
ショートカットを変更して、コマンドラインRunAs
ユーティリティを使用できます。たとえば、エクスプローラーでユーザーBillyBobとして特定のフォルダーを開こうとするショートカットのターゲットは次のとおりです。
C:\Windows\System32\runas.exe /user:BillyBob "Explorer.exe F:\Projects"
/ user引数は、ドメインクレデンシャルを受け入れることもできます(ハードコードされているか、%USERDOMAIN%環境変数を使用しています:
C:\Windows\System32\runas.exe /user:%USERDOMAIN%\BillyBob "Explorer.exe F:\Projects"\BillyBob "Explorer.exe F:\Projects"
ユーザー名は%username%
環境変数に割り当てることができます。
C:\Windows\System32\runas.exe /user:%username% "Explorer.exe F:\Projects"
または、環境から取得したドメインとユーザー名の両方で:
C:\Windows\System32\runas.exe /user:%USERDOMAIN%\%username% "Explorer.exe F:\Projects"
ショートカットが開くcmd.exe
と、指定されたアカウントのパスワードを尋ねるウィンドウが表示されます。
ユーザーにユーザー名を入力する必要がある場合は、少しハックがかかり、これを.batファイルに入れる必要があります。
@Echo Off
set INPUT=
set /P INPUT=Username: %=%
C:\Windows\System32\runas.exe /user:%INPUT% "Explorer.exe F:\Projects"
%username%
ターゲットで環境変数を使用することもできます。すなわち/user:%username%
ShellRunAsは厳密に右クリックを必要としません。それは、コマンドラインで指定された元のプログラムを備えた通常のツールとして呼び出すことができます(実際はそうです)runas
。
shellrunas notepad foo.txt
これはショートカットで使用できます。
これが私のやり方です:
@echo off
rem @--------Window config
COLOR F3
mode con cols=60 lines=10
echo.%date%
rem @--------Authentication
@echo.
@set /p user=Username:
@echo.
@runas /user:%user% "C:\Programas\Internet Explorer\IEXPLORE.EXE http://www.google.com"
rem @ if you are in a domain use:
rem @runas /user:DOMAIN\%user% "C:\Programas\Internet Explorer\IEXPLORE.EXE http://www.google.com"
rem @---------Window close time (after "-n" put window close time in seconds)
ping -n 3 127.0.0.1>NUL
@cls
@exit
あなたはそれをテストすることができ、それはうまく動作します。