2

batch複数のリモートPCで自動スクリプトを実行するためにファイルを作成しようとしています。
メインマシンは、任意のリモートPCに接続して、ローカルのスケジュールされたタスクを設定できる必要があります。
バッチファイルは次のコマンドを使用します。

schtasks /delete               <--- remove any previous version
         /S \\10.1.2.3         <--- the remote PC's IP
         /U theAdministrator   <--- the username to access the PC
         /P MyPassword         <--- the password to access the PC
         /TN MyTask            <--- task name
         /F                    <--- don't ask, just do it option

schtasks /create 
         /S \\10.1.2.3 
         /U theAdministrator 
         /P MyPassword 
         /RU theAdministrator  <--- the username to execute the task 
         /RP MyPassword        <--- the password to execute the task
         /SC dayly /MO 1       <--- run every day
         /TN MyTask 
         /TR C:\task.bat       <--- the script to run on the remote PC

最初のコマンドを起動すると/deleteすべてが機能しますが、2番目のコマンドは警告を返します:
「タスクは作成されましたが、アカウント情報を設定できなかったため、おそらく実行されません」
(これがそうでない場合は申し訳ありません正確なエラーメッセージですが、自分で翻訳する必要があります)

/deleteコマンドはOKであり、/create実行されなくてもタスクが作成されるため、ユーザー名とパスワードは正しいと確信しています。

したがって、問題はオプション/RUにあるはずです.../RP


解決:

このエラーメッセージがないとコマンド自体を実行できませんでしたが、とにかく目的を達成し、2つの異なるオプションを見つけました。

ATコマンドを使用する最も簡単な方法:

AT \\10.1.2.3 12:00 C:\task.bat

問題はありませんが、実行する時間を指定する必要があります。つまり、タスクをすぐに実行したい場合は、%time%変数をチャットする必要があります。
このオプションでは、ユーザーにタスクを実行するように設定することもできません(管理者としてテストし、タスクをとして実行するように設定しましたNT AUTHORITY/SYSTEM

PsToolsを使用したフル機能の方法:コマンドをに
渡すschtasks /createPsExec

set command=schtasks /create /SC dayly /MO 1 /TN MyTask /TR C:\task.bat /RU theAdministrator /RP MyPassword
PsExec \\10.1.2.3 -u theAdministrator -p MyPassword %command%

NB。リモートPCにアクセスするため のターゲットIPユーザー、およびパスワードPsExecは、コマンド内で設定する必要があるため、で必要ありませんschtasks
スクリプトtask.batは、ターゲットPCのルートC:\にすでに存在します。

4

1 に答える 1

0

PC はドメインに参加していますか??
以前にドメインで schtasks を使用したことがあり、/ruandなしで動作し/rpます。タスクをスケジュールしているマシンのユーザー名とパスワードとして/uandを使用しました。 ただし、標準のワークグループ/ホームグループ マシンで試したことはありません。また、これ を参照して、すべてのリモート マシンで UAC がオフになっていることを確認してください。後で問題が発生する可能性があります。編集/p




あるラップトップから別のラップトップに試してみました(ドメインは関係ありません)。これらの2行は機能します(CMDでは、バッチで機能するはずです)

schtasks /delete /S \\xxx.xxx.xxx.xxx /U USERNAME /P PASSWORD /TN MyTask /F
schtasks /create /S \\xxx.xxx.xxx.xxx /U USERNAME /P PASSWORD /TN MyTask /SC once /st START_TIME /it /TR c:\test.bat

注意すべきことは次のとおりです。
- 明らかに、x を必要な IP に置き換え、USERNAME と PASSWORD を関連データに置き換えます
-/sc once /st START_TIMEあなたの/sc daily /mo 1ではなく を使用しましたが、違いはありません- which (CMD から取得) を
追加しました/it対話的に実行するタスク...」(私の経験では、使用しないと問題が発生します)
-タスクをスケジュールしていたラップトップのユーザーが、実行したラップトップに存在しませんschtasks-
実行したラップトップのユーザーschtasks from は、タスクをスケジュールしていたラップトップには存在しません (したがって、クライアント/ホストに存在しないユーザーは関係ありません)

于 2012-10-26T23:14:00.877 に答える