
リモート コンピューターでバッチ ファイル (ソフトウェアをインストールするため) を実行しようとしています。これを行うには、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.