2012-03-06 9 views
1

管理者としてインストールスクリプトを実行する必要があります。シェルは、シェルを新しいシェル・ウィンドウを開き、その後、パスワードを要求し、スクリプトrunasコマンドを使用したスクリプトの実行

runas /user:Administrator "call install.bat" 

を実行せずに、すぐにそれを閉じて、私はいくつかのことを試してみましたが、それらのどれも

runas /user:Administrator install.bat 

に動作しないことを要求しますパスワードは、その後、

Unable to run - call install.bat 
2: The system cannot find the file specified 

私は理解していないことであるエラーで失敗したことを私はrunasせずにコマンドを実行した場合call install.bat部分は、スクリプトが実行されます。管理者の資格情報が必要なコマンドでは失敗しましたが、それは予想通りです。

  • 方法runasコマンドを使用して、管理者としてスクリプトを実行するには:

    私は2つの質問がありますか?

  • 次の呼び出しが動作しない理由を説明してもらえ:runas /user:Administrator "call install.bat"

答えて

2

使用cmd.exe.cmd.batファイルを解釈するためにあなたの車です。 /K/Cため

runas /user:Administrator "cmd.exe /K install.bat" 

または

runas /user:Administrator "cmd.exe /C install.bat" 

チェックcmd.exe /?

注:/Cは、あなたが望む可能性が高いです。あなたのコメントの後

余談:runas/envオプションがあります。

/env    to use current environment instead of user's. 
+0

問題は、新しいシェルウィンドウを作成し、現在の環境(作業ディレクトリ、カスタム環境変数)をクリーンアップすることです。 – Sydney

+0

@Sydney:これがそのまま実行される方法です。環境を準備した後、 'install.bat'を呼び出すラッパースクリプトを書くことができます。それだけでなく、 'runas/env'もありますが、あなたはあなたの質問にこの副条件を指定していません。 – 0xC0000022L

+0

'/ envはこの問題を解決しました。 – Sydney

0

バッチファイルは、インタプリタ(CMD)によって実行されています。特権モードでスクリプトを実行するには、権限を昇格したcmdが必要です。 callの代わりにcmdを使ってみてください。