tmytのらくがき

個人の日記レベルです

Windows 10 2004のエクスペリエンスっていう項目が気になったので探した

Windows 10 2004 May 2020 Updateにするとシステムのバージョン情報に"Windows Feature Experience Pack"というのが表示されるようになりました。らしい。この環境はInsider Fast Ringなので若干バージョンが違うけれども、2004でも同じことができます。

f:id:tmyt:20200620205541p:plain

Feature on Demand版のドキュメントを見てみると

This Feature on Demand package includes features critical to Windows functionality. Do not remove this package.

  • Capability Name: Windows.Client.ShellComponents~~~~0.0.1.0
  • Sample package name: Microsoft-Windows-UserExperience-Desktop-Package~31bf3856ad364e35~amd64~~.cab

と、いうことらしい…中身が気になったので探してみます。

おそらくこれは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の名前とかパッケージの名前とかを見るとそのうちいろいろな実体がここに移されてくるんだろうなぁ…という感じでした。