Windows 11 24H2 26100.1000(Release Preview)ではIUpdateServiceManager2::AddService2を使っても「その他のMicrosoft製品の更新を受け取る」がONにならない？→というより関連がなくなっているみたい

https://learn.microsoft.com/ja-jp/windows/win32/wua_sdk/opt-in-to-microsoft-update

で知られているように、`IUpdateServiceManager2::AddService2`を使うとその他のMicrosoft製品の更新を受け取る」をONにできる。

https://learn.microsoft.com/ja-jp/windows/win32/api/wuapi/nf-wuapi-iupdateservicemanager2-addservice2

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/94177/c682044e-ed7f-017f-d983-95f79f934d84.png)

ところがWindows 11 24H2 26100.1000(Release Preview)ではそれが設定画面に反映されないのか本当に機能していないのかわからないが、少なくとも設定画面から確認できない。

Powershell ScriptからCOM呼び出しでみると反映されているように見える。

```powershell
PS C:\Users\yumetodo> $ServiceManager = New-Object -ComObject Microsoft.Update.ServiceManager
PS C:\Users\yumetodo> $ServiceManager

Services           ClientApplicationID
--------           -------------------
System.__ComObject


PS C:\Users\yumetodo> $ServiceManager.ClientApplicationID = "arikitari"
PS C:\Users\yumetodo> $ServiceManager.ClientApplicationID
arikitari
PS C:\Users\yumetodo> $ServiceManager.QueryServiceRegistration("7971f918-a847-4430-9279-4a52d1efe18d")

RegistrationState ServiceID                            IsPendingRegistrationWithAU Service
----------------- ---------                            --------------------------- -------
                3 7971f918-a847-4430-9279-4a52d1efe18d                       False System.__ComObject


PS C:\Users\yumetodo> $ServiceManager.QueryServiceRegistration("7971f918-a847-4430-9279-4a52d1efe18d").Service


Name                  : Microsoft Update
ContentValidationCert : {}
ExpirationDate        :
IsManaged             : False
IsRegisteredWithAU    : True
IssueDate             : 1601/01/01 0:00:00
OffersWindowsUpdates  : True
RedirectUrls          : System.__ComObject
ServiceID             : 7971f918-a847-4430-9279-4a52d1efe18d
IsScanPackageService  : False
CanRegisterWithAU     : True
ServiceUrl            : https://fe2cr.update.microsoft.com/v6/
SetupPrefix           :
IsDefaultAUService    : True



PS C:\Users\yumetodo> $ServiceManager.QueryServiceRegistration("7971f918-a847-4430-9279-4a52d1efe18d").Service.IsDefaultAUService
True
```

なんでだろうか。

とりあえずFeedback Hubには投げてみたが・・・

https://aka.ms/AAr9qbc

## 追記: 2024/10/03

そういえば24H2正式版が出ましたね。

というわけで早速環境を作ってみたのですが、26100.1742では引き続き再現していそうでした。

## 追記: 2024/10/11

Windows11 24H2 26100.2033で事象を見ていたのですが、ONにならないだけじゃなくてそもそも`7971f918-a847-4430-9279-4a52d1efe18d`とWindowsの設定アプリ→Windows Update→詳細オプション→その他のMicrosoft製品の更新プログラムを受け取るに関連性がなくなっているようでした。

というのも、上の実行例のように`$ServiceManager.QueryServiceRegistration("7971f918-a847-4430-9279-4a52d1efe18d").Service.IsDefaultAUService`がtrueなのを確認した後に、
`$ServiceManager.RemoveService("7971f918-a847-4430-9279-4a52d1efe18d")`して、Windowsの設定アプリ→Windows Update→詳細オプション→その他のMicrosoft製品の更新プログラムをONにしても`$ServiceManager.QueryServiceRegistration("7971f918-a847-4430-9279-4a52d1efe18d").Service`は存在しないままであるのを確認したからです。

## 追記: 2024/12/10

Visual Studioサブスクリプション付帯の問い合わせ権利でMSに問い合わせしてたんですが3ヶ月以上たってようやく返信が来て、どうもMS側でも再現を確認したらしいです。果たして仕様なのかバグなのか・・・。

## 追記: 2025/01/22

MSとやり取りを続けたところ、概ね次のかんじに。

- Windows Update (WU) や Update Session Orchestrator (USO) 経由での設定変更は想定していた
- `IUpdateServiceManager2`API を直接実行した場合にユーザー インタフェースが変更されていることを想定していないため本事象が起きている
- MSの検証環境でもAPI 実行後の PowerShell の結果より ON・OFF の切り替えができていることを確認したので、内部的な制御としては問題なく動作していると想定している

これ以上はユニファイドサポートを契約しないと聞けなさそうですね・・・。