第 4 章 自動更新について 33
4.3 自動更新用スクリプトの作成と実行
自動ログオンするように設定された端末は以下のように動作します。自動ログオンのフローに再起動が含ま れることにご注意ください。
1. 起動する。
• 設定に誤りがあるなどして自動ログオンに失敗した場合には、画面に「ユーザ名かパスワードが正しく ありません。」等の表示が出ることがあります。
2. レジストリを変更して自動ログオンするべく設定する。
3. 再起動する。
4. 自動ログオンする。
• 再起動後の2回めの起動時に自動ログオンに成功するのが仕様です。
自動ログオン機能を持つ他のツールが導入されたディスクに対して用いた際、両者の機能が競合すると適 切に動作しない場合があります。自動更新を行う時間帯において両者の機能が競合しないようにしてくだ さい。
CO-Store 5.0ユーザー ガイド
(前のページからの続き)
$CoBooterServer = "localhost:16910"
# 自動更新処理が完了したかどうかを最初に確認するまでの待機時間
$UpdateWaitTime = 3600
# 自動更新処理のタイムアウト時間 [単位: 秒]
$UpdateTimeout = 10800
# 自動更新処理がエラーだった場合に更新バージョンを削除するかどうか
# ※ $true: 削除する (デフォルト), $false: 削除しない
$DeleteWhenAutoUpdateIsFailed = $true
• $UpdateWaitTime, $UpdateTimeout, $DeleteWhenAutoUpdateIsFailed以外は通常は変更する必要はあ りません。
端末側スクリプト
Windows Updateを実行するサンプルスクリプト(Run-WindowsUpdate.ps1)を用意しています。
1. "C:\ProgramData\CO-CONV\CO-Store\Scripts\Device\Windows Update"以下の .ps1-dist を.ps1 にリ ネームする。
• WindowsUpdateSettings.ps1 -設定ファイルです。
• Run-WindowsUpdate.ps1 - Windows Updateを実行するスクリプトです。
2. WindowsUpdateSettings.ps1の設定を編集する。:
# EULA に同意するかどうか
# ※ $false にしておくと、EULA の同意を求める更新がスキップされます。
$acceptEula = $true
# 適用除外リスト
$ignoreList = (
"Windows 10、バージョン 1709 の機能更新プログラム",
"Windows 10、バージョン 1803 の機能更新プログラム"
)
3. 必要に応じて端末側で実行する更新処理を記述したPowerShellスクリプトを用意する。
端末側スクリプト実行設定
Run-AutoUpdate.ps1の-DeviceScriptsDirオプションにDefaultが指定されるものとします。(サーバー側で
Run-AutoUpdate.ps1を実行する際に指定されるオプションです。)
4.3. 自動更新用スクリプトの作成と実行 39
そ の 場 合 、端 末 側 ス ク リ プ ト を 準 備 す る フ ォ ル ダ は C:\ProgramData\CO-CONV\CO-Store\Scripts\Device\Default\Privateになります。
1. ScriptFileNames.txtに、端末側にダウンロードするファイルを列挙して保存する
• このファイル名(ScriptsFileNames.txt)は固定です。
• 例えば、Run-SomeTask.ps1を実行する場合は以下のように書いてください。:
CO-StoreAgent.ini Run-SomeTask1.ps1 SomeTask1Settings.ps1 Run-SomeTask2.ps1
• (動作試験などで)実行するスクリプトが無い場合にも、中身は空でもよいのでScriptFileNames.txtを用 意してください。
• CO-StoreAgent.iniもダウンロード対象として記述してください。
• 上記の例は、何らかの処理を実行するRun-SomeTask1.ps1とRun-SomeTask2.ps1、Run-SomeTask1.ps1 の設定を記述したSomeTask1Settings.ps1の組み合わせであることを想定しています。
2. 各.ps1の実行設定をCO-StoreAgent.iniに記述する
• このファイル名(CO-StoreAgent.ini)は固定です。
• 例えば、Run-SomeTask1.ps1に3時間のタイムアウト、Run-SomeTask2.ps1に15分のタイムアウトを 設定して実行する場合には以下のようになります。:
[Script-1]
FileName=Run-SomeTask1.ps1 Enabled=true
Timeout=3:00:00 [Script-2]
FileName=SomeTask1Settings.ps1 Enabled=false
[Script-3]
FileName=Run-SomeTask2.ps1 Enabled=true
Timeout=0:15:00
• 各セクション名は[Script-N]という形式で記述してください。(Nは任意です。)
• タイムアウトのデフォルト設定は2時間です。
3. 指定したファイルをフォルダに設置する
40 第4章 自動更新について
CO-Store 5.0ユーザー ガイド
• 先 述 の 例 で あ れ ば 、以 下 の フ ァ イ ル を C:\ProgramData\CO-CONV\CO-Store\Scripts\Device\Default\Privateに設置することになります。
– ScriptFileNames.txt – CO-StoreAgent.ini – Run-SomeTask1.ps1 – SomeTask1Settings.ps1 – Run-SomeTask2.ps1
4.3.2 自動更新処理の概要
サンプルスクリプトRun-AutoUpdate.ps1では以下の一連の処理をしています。
1. 書き換え開始
• 更新用バージョン(保守モード)を追加する
• 更新用端末を割り付ける 2. 更新用端末の設定
• 自動更新を有効にする
• ForceDiskを有効にする
• 自動ログオンを有効にする(オプション) 3. 端末を起動する
4. 更新処理を待機する 5. 端末をシャットダウンする 6. 更新用端末の設定解除
• 自動更新を無効にする
• ForceDiskを無効にする
• 自動ログオンを無効にする(オプション) 7. 書き換え終了
• 更新用バージョンを実稼働モードに昇格する 8. 運用端末の割り付け
4.3. 自動更新用スクリプトの作成と実行 41
• 最新バージョンに割り付け変更する。
– 更新作業に用いた端末 および 自動更新を行った系列の最新バージョンを利用していた端末に、自 動更新により作成されたバージョンを割り付ける。