web-dev-qa-db-ja.com

管理者としてリモートコンピューターでバッチファイルを実行する

リモートコンピュータで(一部のソフトウェアをインストールするために)バッチファイルを実行しようとしています。これを行うには、PSExecを使用しています。

psexec.exe \\ COMPUTER C:\ swsetup\install.bat

これは正常に機能しますが、一部のインストールはスクリプトが管理者として実行されていないために失敗します(ログオンした場合、右クリックして[管理者として実行]を選択します)スクリプトは正常に実行およびインストールされます。

/ runasコマンドで管理者として実行しようとしましたが、うまくいきませんでした

psexec.exe \\ computer cmd

その後

runas/user:computer\administrator C:\ swsetup\install.bat

システムが「アカウントのパスワードを入力してください」とフリックしてから、パスワードを入力せずにcmdプロンプトに戻ります。同じ問題が発生します。

runas /user:[email protected] C:\ swsetup\install.bat

これを回避する方法はありますか、またはマシンにアクセスしてログオンし、各マシンでスクリプトを実行する必要がありますか?

3
tombull89

必要に応じて最高の特権で必要なバッチファイルを実行するリモートコンピューターでタスクスケジュールを作成します。 schtasks/Create /?を使用して、リモートコンピューターに新しいタスクを追加できる場合があります。 (検索してリモートコンピュータにタスクスケジュールを追加)
タスクを実行するショートカットを作成します
psexec.exeでショートカットを実行する

選択したプログラムを管理者として実行しているときに、この方法を使用してUACをバイパスします。新しいタスクスケジューラフォルダー「bypass UAC」を作成し、その中に新しいタスク「installer」を作成しました。

[全般]タブ:[最高の権限で実行]をオンにします。
[アクション]タブ:プログラムを開始するyourbatchfile
[条件]タブ:スリープ解除タイマーを有効にしていて、コンピューターをスリープ解除してタスクを実行する場合は、電源制限をオフにし、[コンピューターのスリープ解除]をオンにします。
設定タブ:「コマンドでタスクの実行を許可する」にチェックを入れます

ショートカットの使用パターン:C:\ Windows\System32\schtasks.exe/RUN/TN "foldername\taskname"

したがって、たとえば「バイパスUAC\installer」

手順がわかりにくい場合は、「タスクスケジューラでUACをバイパスする」を検索してください

1
Siavash

バッチを実行しているアカウント名でPSExecパスワードスイッチを追加してみましたか?

 -p         Specifies optional password for user name. If you omit this
            you will be prompted to enter a hidden password.
0
Mitch