サーバーの1回限りの再起動をスケジュールしたい。朝早くアップデートのインストールを完了します。 Windows 2012のコマンドラインからこれを行うにはどうすればよいですか?
Windows 2008では、at
コマンドを使用しましたが、
at 2am shutdown -r -f -c "restart"
そして、午後の残りを休みにしました。
しかし、Windows 2012でこのコマンドを実行すると、
The AT command has been deprecated. Please use schtasks.exe instead.
したがって、schtasks.exeを使用した同等のコマンドは次のようになります。
schtasks /create /sc once /tn restart /tr "shutdown - r -f ""restart""" /st 02:00
このコマンドには、非常に忘れやすいだけでなく、別の重要な欠点があります:タスクを午前2時にスケジュールしますtoday—実行するために午前1時に起きていない限り、あまり使用しません。
Schtasks.exeのヘルプによると、開始日を設定するための/sd
スイッチは/sc once
では使用できません。ですから、明日の日付をmm/dd/yyyy形式で入力したいと思っても(そうではありません)、これはできません。
私が見つけた唯一の可能な解決策は here です。ここで、Kevin Traasはバッチファイルを作成して、数分待機する真夜中の直前にスケジュールされたタスクを作成し、コマンドを実行する別のスケジュールされたタスクを作成することを提案しています。あなたが実際に実行したいこと。賢いですが、at
ほど便利なところはありません。
shutdown
コマンド自体には、シャットダウンを/t
の遅延パラメーターがあり、シャットダウンを最大10年まで数秒遅らせます。たとえば、シャットダウンを14時間でスケジュールしたい場合は、
shutdown /r /t 50400
/d
パラメータを使用して理由を追加するか、/c
を使用してコメントを追加することもできます。詳細については、shutdown /?
を実行してください。
ドキュメントにもかかわらず、/SD
パラメータは/SC ONCE
と互換性があるようです。タスクは、指定された日付、指定された時間に実行されるように正常に作成されました。 (W8およびW7でテスト済み)
さらに、 the XP schtasks.exe
のドキュメント は、/SD
を使用するときに/SC ONCE
パラメータが必要であると言っている限り、そのため、組み合わせを使用するスクリプトはかなり多いと思います。
例:
C:\Users\Mitch>schtasks /create /sc once /tn restart /tr "shutdown -r -f ""restart""" /st 23:00 /sd 2013-06-13
SUCCESS: The scheduled task "restart" has successfully been created.
C:\Users\Mitch>
ドキュメントに不満がある場合は、XMLファイルを直接生成することを検討してください( スキーマはこちら )。これは確実にサポートされ、将来の日に一度実行するようにスケジュールされたタスクを確実にサポートします。適切なファイルを取得する簡単な方法は、タスクスケジューラmmc
スナップインで作成し、 exportコマンドを使用 を作成することです。
例:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.Microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2013-06-12T21:20:51.004181</Date>
<Author>FOOBAR\Mitch</Author>
</RegistrationInfo>
<Triggers>
<TimeTrigger>
<StartBoundary>2013-06-13T22:20:29</StartBoundary>
<Enabled>true</Enabled>
</TimeTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>FOOBAR\Mitch</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>Your command here</Command>
</Exec>
</Actions>
</Task>
インポートするコマンド:
schtasks /CREATE /TN "Task Name" /XML filename.xml
私は結局 _runat.ps1
_ を作成して、at
の単純な機能の一部を複製し、ミッチの答えからの知恵を取り入れました。
構文はrunat (time) (command)
です。
_runat 2am shutdown -r -f -c "restarting the server"
runat 10:15 msg * it`'s 10:15 everyone!
_
あなたも、入力する必要がなかった古き良き時代に懐かしいなら...
_schtasks /create /ru system /rl highest /sc once /tn restart /tr shutdown -r -f -c \"restarting the server\" /st 02:00 /sd 06/15/2013
_
...次に、次のpowershellコマンドを実行してインストールできます。
_iex (new-object net.webclient).downloadstring('https://Gist.github.com/lukesampson/5779205/raw/install.ps1');install runat https://Gist.github.com/lukesampson/5778559/raw
_
または、_runat.ps1
_スクリプト ここ を手動でダウンロードできます。
私はこれを2012 R2のスクリプトで使用し、うまく機能しました。 4:30 amにサーバーを再起動する毎日のタスクを作成します
schtasks /create /ru system /rl highest /sc DAILY /tn restart /tr "shutdown /r /f /c "Restarting" /st 04:30
管理者権限でCMDプロンプトから実行するようにしてください。
アンディ
翌日の指定された時間にプログラムでコンピューターを再起動するための、もう1つのPowerShellスクリプト
$tomorrowDate = (get-date).AddDays(1).ToString("dd/mm/yyyy")
schtasks /delete /tn restart /f
schtasks /create /sc once /ru MyDomain\administrator /rp /tn restart /tr "shutdown -r -f" /st 07:13 /sd $tomorrowDate
/ fパラメータを指定してschtasksコマンドを使用することをお勧めします。
/ fを使用して、同じ名前のタスクがある場合は変更されます。
スクリプトを使用してタスクを展開するのに非常に便利です。
スケジュールサーバーの再起動の完全な例:
schtasks /create /ru system /rl highest /sc DAILY /tn Reinicio /tr "shutdown /r /f /t 0 /c "Reinicio"" /st 22:30 /F
抽出元: http://www.sysadmit.com/2016/09/windows-programar-apagado-o-reinicio-automatico.html
アップデートのインストール後に再起動するだけの場合は、PSWindowsUpdateモジュールを使用してアップデートをインストールできます。 here からダウンロードできます。インストールしたら、Powershellを開いて次のように入力します。
Get-WuInstall -AcceptAll -AutoReboot
このスクリプトを使用すると、特定の日時に複数のサーバーの再起動をスケジュールできます。
https://gallery.technet.Microsoft.com/Schedule-restart-of-2c1131fb?redir=