XenToolsの自動更新を停止する方法

# 1. はじめに
IBM CloudのClassic Infrastructureにおける仮想サーバーでは、Citrix Hypervisor(XenServer)が利用されています。Windows ServerではXenToolsが導入されていますが、XenToolsのデフォルトの仕様では週に一度XenToolsの更新があるかどうかをインターネット経由でチェックして、更新があると自動更新を実施し、その上で再起動するという動きになっているようです。本記事では実際の設定内容と自動更新の停止方法について紹介します。

参考リンク

- https://support.citrix.com/article/CTX224933
- https://support.citrix.com/article/CTX222494

# 2. Windows導入直後の環境確認

今回はWindows 2019で確認した。

```txt:環境情報
C:\>systeminfo

Host Name:                 xxxxxxxxx
OS Name:                   Microsoft Windows Server 2019 Standard
OS Version:                10.0.17763 N/A Build 17763
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Server
OS Build Type:             Multiprocessor Free
Registered Owner:          SoftLayer Technologies, Inc
Registered Organization:   IBM
Product ID:                xxxx-xxxxx-xxxxx-xxxxx
Original Install Date:     6/11/2020, 10:16:35 PM
System Boot Time:          6/11/2020, 9:41:19 PM
System Manufacturer:       Xen
System Model:              HVM domU
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~2300 Mhz
BIOS Version:              Xen 4.7<denied>, 11/12/2019
Windows Directory:         C:\Windows
System Directory:          C:\Windows\system32
Boot Device:               \Device\HarddiskVolume1
System Locale:             en-us;English (United States)
Input Locale:              en-us;English (United States)
Time Zone:                 (UTC+09:00) Osaka, Sapporo, Tokyo
（以下略）
```

```txt:XenToolのバージョン
C:\>reg query HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\XenTools

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\XenTools
    HostTime    REG_SZ
    MajorVersion    REG_DWORD    0x7
    MinorVersion    REG_DWORD    0x2
    MicroVersion    REG_DWORD    0x0
    BuildVersion    REG_DWORD    0x613
    Install_Dir    REG_SZ    C:\Program Files\Citrix\XenTools\
    MsiGuestAgent    REG_DWORD    0x1
    Driver_Install_Dir    REG_SZ    C:\Program Files\Citrix\XenTools\\Drivers
    DisableAutoUpdate    REG_DWORD    0x0

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\XenTools\AutoUpdate
```

16表示なので、`0x613 =`$16^2*6+16^1*1+3=1555$
つまり、`7.2.0.15555`であることがわかる。
また`DisableAutoUpdate=0`なので自動更新をする構成になっている。
先述の参考リンクによると、https://pvupdates.vmd.citrix.com/updates.json に最新イメージがあるかどうかの確認を行っているということであるが、確かにWindows Server上で構成されているBuild Versionと一致している。
<img width="655" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/c3045ef5-22b4-174d-0c11-fa46ddc1d6b1.png">

また、以下のようなタスクスケジューラーが設定されていることも確認できる。

```txt:タスクスケジューラー
C:\>schtasks /query /TN "Citrix Management Agent Auto-Updater"

Folder: \
TaskName                                 Next Run Time          Status
======================================== ====================== ===============
Citrix Management Agent Auto-Updater     6/18/2020 5:47:17 AM   Ready
```

# 3. 自動更新を無効にする方法

レジストリを変更し、自動更新の設定およびそのタスクをDisabledに変更する。

```txt:DisableAutoUpdateを1にする
C:\> reg add HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\XenTools /t REG_DWORD /v DisableAutoUpdate /d 1
Value DisableAutoUpdate exists, overwrite(Yes/No)? Yes
The operation completed successfully.

C:\> reg query HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\XenTools

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\XenTools
    HostTime    REG_SZ
    MajorVersion    REG_DWORD    0x7
    MinorVersion    REG_DWORD    0x1
    MicroVersion    REG_DWORD    0x0
    BuildVersion    REG_DWORD    0x4cd
    Install_Dir    REG_SZ    C:\Program Files\Citrix\XenTools\
    MsiGuestAgent    REG_DWORD    0x1
    Driver_Install_Dir    REG_SZ    C:\Program Files\Citrix\XenTools\\Drivers
    DisableAutoUpdate    REG_DWORD    0x1

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\XenTools\AutoUpdate
```

```txt:AutoUpdateのタスクをDiabledにする。
C:\>schtasks /change /TN "Citrix Management Agent Auto-Updater" /Disable
SUCCESS: The parameters of scheduled task "Citrix Management Agent Auto-Updater" have been changed.

C:\>schtasks /query /TN "Citrix Management Agent Auto-Updater"

Folder: \
TaskName                                 Next Run Time          Status
======================================== ====================== ===============
Citrix Management Agent Auto-Updater     N/A                    Disabled
```