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

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

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

psexec.exe \\コンピューター C:\swsetup\install.bat

これは正常に動作しますが、スクリプトが管理者として実行されていないためにインストールが失敗する場合があります (ログオンして右クリックし、「管理者として実行」を選択すると、スクリプトが実行され、正常にインストールされます)。

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

psexec.exe \\コンピュータ cmd

その後

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

システムは「アカウントのパスワードを入力してください」と表示し、パスワードを入力せずにコマンドプロンプトに戻ります。同じ問題が、次のようにしても同じことが起きます。

実行者 /user:[メールアドレス]C:\swsetup\install.bat

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

答え1

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

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

全般タブ: 「最高権限で実行」をチェックします。
アクションタブ: プログラムを起動します。バッチファイル
条件タブ: ウェイクタイマーが有効になっていて、タスクを実行するためにコンピューターを起動する場合は、電源制限のチェックを外し、コンピューターのウェイクをチェックします。
設定タブ: 「コマンドでタスクを実行できるようにする」をチェックします。

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

たとえば「UAC\インストーラーをバイパス」

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

答え2

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

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

関連情報