別の方法を次に示します。
wmic /user:username /password:pass process call create "cmd /c \"d:\\path\\to\\program.exe\" /arg etc"
編集:明らかに、ローカル マシンで別の資格情報を使用した認証は許可されません。
vbscript で呼び出しrunas
、vbscript にパスワードをコンソールに送信させて、パスワードの入力を自動化する方法があります。
set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.run "runas /noprofile /user:USERNAME " + Chr(34) + "d:\path\to\command.exe /args" + Chr(34)
WScript.Sleep 500
WshShell.SendKeys "PASSWORD"
WshShell.SendKeys "{ENTER}"
set WshShell = nothing
それをファイルに保存し、.vbs
経由で呼び出しますcscript /nologo script.vbs
バッチ スクリプトから実行する必要がある場合は、クリエイティブなエコーを実行してください。
@echo off
setlocal
set username=username
set password=password
set program=d:\path\to\program.exe /arg argument
echo set WshShell = WScript.CreateObject(^"Wscript.Shell^")>runas.vbs
echo WshShell.run ^"runas /netonly /noprofile /user:%username% ^" + Chr(34) + ^"%program%^" + Chr(34)>>runas.vbs
echo WScript.Sleep 500>>runas.vbs
echo WshShell.SendKeys ^"%password%^">>runas.vbs
echo WshShell.SendKeys ^"{ENTER}^">>runas.vbs
echo set WshShell = nothing>>runas.vbs
cscript /nologo runas.vbs
del /q runas.vbs
それがうまくいかない場合は、psexecを使用して別の資格情報でプログラムを実行することもできます。
psexec -u USERNAME -p PASSWORD d:\path\to\command.exe
他に考えられる唯一の方法は、システム アカウントからスクリプトを実行するグループ ポリシー スタートアップ スクリプトを使用してスクリプトを実行することです。レジストリの から呼び出すことも考えましたHKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
が、再起動後に最初にログインしたユーザーから起動する可能性があると思います。