Windows 10 2004 May 2020 Updateにするとシステムのバージョン情報に"Windows Feature Experience Pack"というのが表示されるようになりました。らしい。この環境はInsider Fast Ringなので若干バージョンが違うけれども、2004でも同じことができます。
Feature on Demand版のドキュメントを見てみると
This Feature on Demand package includes features critical to Windows functionality. Do not remove this package.
と、いうことらしい…中身が気になったので探してみます。
おそらくこれはAppX形式だろう。ということで、PowerShellでパッケージを探してたのがこれ。
PS> Get-AppxPackage | Where-Object { $_.Version -eq "120.13701.0.0" } Name : MicrosoftWindows.Client.CBS Publisher : CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US Architecture : X64 ResourceId : Version : 120.13701.0.0 PackageFullName : MicrosoftWindows.Client.CBS_120.13701.0.0_x64__cw5n1h2txyewy InstallLocation : C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy IsFramework : False PackageFamilyName : MicrosoftWindows.Client.CBS_cw5n1h2txyewy PublisherId : cw5n1h2txyewy IsResourcePackage : False IsBundle : False IsDevelopmentMode : False NonRemovable : True Dependencies : {Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe} IsPartiallyStaged : False SignatureKind : System Status : Ok
このパッケージは C:\Windows\SystemApps
に入ってるらしいので、管理者権限のコマンドラインから様子を見てみることにします。
PS> dir ディレクトリ: C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2020/06/14 7:20 AppxMetadata d----- 2020/06/14 7:20 Assets d----- 2020/06/14 7:20 InputApp d----- 2020/06/14 7:19 pris d----- 2020/06/14 7:20 ScreenClipping d----- 2020/06/14 7:20 WindowsInternal.ComposableShell.Experiences.SuggestionUIUndocked -a---- 2020/06/13 7:19 877169 AppxBlockMap.xml -a---- 2020/06/13 7:19 58385 AppxManifest.xml ..省略..
AppXらしいデータが入ってました。中身が気になるのでAppxManifest.xmlを眺めてみます。
> Get-Content .\AppxManifest.xml <?xml version="1.0" encoding="utf-8"?> <Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4" xmlns:uap6="http://schemas.microsoft.com/appx/manifest/uap/windows10/6" xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10" xmlns:wincap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/windowscapabilities" IgnorableNamespaces="mp uap uap3 uap4 uap6 uap10 wincap"> <Identity Name="MicrosoftWindows.Client.CBS" Publisher="CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="120.13701.0.0" ProcessorArchitecture="x64"/> <mp:PhoneIdentity PhoneProductId="3898fac3-1f84-4040-83ce-ef30739c0a64" PhonePublisherId="6145b212-a274-4517-8abe-1e015f21ff03"/> <Properties> <DisplayName>Windows Feature Experience Pack</DisplayName> <PublisherDisplayName>Microsoft Windows</PublisherDisplayName> <Logo>Assets\StoreLogo.png</Logo> </Properties> ..省略..
こういうのがだらだら続くのだけれども、めっちゃ長いのでピックアップして。
どうやらInputMethod的ななにかだそうです。
<Application Id="InputApp" Executable="TextInputHost.exe" EntryPoint="WindowsInternal.ComposableShell.Experiences.TextInputUndocked.InputApp.App"> ..省略.. <Extensions> <!-- VS's manifest validation won't accept an empty Extensions section but it is required for fragment merging, so add a dummy protocol entry --> <uap:Extension Category="windows.protocol"> <uap:Protocol Name="ms-inputapp" DesiredView="useMinimum"> <uap:DisplayName>Input App</uap:DisplayName> </uap:Protocol> </uap:Extension> <uap3:Extension Category="windows.appExtension"> <uap3:AppExtension Name="com.microsoft.windows.input.app" Id="InputApp" PublicFolder="Public" DisplayName="Input Experience"> </uap3:AppExtension> </uap3:Extension> </Extensions> </Application>
Windpws+Shift+Sで出てくるあれの実体がここに入っているそうです。
<Application Id="ScreenClipping" Executable="ScreenClippingHost.exe" EntryPoint="ScreenClippingHost.App"> ..省略.. <Extensions> <uap:Extension Category="windows.protocol"> <uap:Protocol Name="ms-screenclip"> <uap:DisplayName>ms-screenclip</uap:DisplayName> </uap:Protocol> </uap:Extension> <uap3:Extension Category="windows.appExtension"> <uap3:AppExtension Name="com.microsoft.windows.app.screenclip" Id="ScreenClippingApp" PublicFolder="Public" DisplayName="Screen Snipping Experience"/> </uap3:Extension> <uap3:Extension Category="windows.appExtensionHost"> <uap3:AppExtensionHost> <uap3:Name>com.microsoft.windows.protocoloverride</uap3:Name> </uap3:AppExtensionHost> </uap3:Extension> </Extensions> </Application>
今のところこれくらいしか中身はないのだけれども、EntryPointの名前とかパッケージの名前とかを見るとそのうちいろいろな実体がここに移されてくるんだろうなぁ…という感じでした。