1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

イベントログから Winget の ID と Microsoft Store の URL

Posted at

たまに Winget でアプリ ID を使ってインストールとアンインストールしているのですが、アプリ ID の確認が簡単にできる方法があったので、残しておきます。

Winget とは?

Winget は、Microsoft が提供する Windows 用のパッケージ管理ツールであり、コマンドラインで、ソフトウェアの検索、インストール、更新、削除を効率的に行うことができます。なお、開発は GitHub で行われています。

GitHub - microsoft/winget-cli
https://github.com/microsoft/winget-cli

私が思う Winget の使いにくいところ

Microsoft Store にあるアプリを簡単にインストールできたり、パッケージをローカルにダウンロードできたりと、非常に有用なツールなのですが、アプリの検索性が悪いと思っています。具体的には、ペイントや電卓を検索すると検索結果がたくさん出てきて、どれが目的のペイントや電卓なのかわかりません。しかも英語名で指定しないといけないです。

解決方法としては、Microsoft Store のアプリには、ストアの製品 ID がついており、この ID を指定することで確実にアプリを指定できます。ただ、その ID って確認するの大変じゃない?

確認方法としては、winget show コマンドでパッケージの詳細を確認するほかに Microsoft Store には、Web 版があり、URL に ID が入っているので、URL から ID が確認する方法があります。例えば、電卓は以下の URL ですので、"9wzdncrfhvn5" が ID だとわかります。

Windows 電卓:
https://apps.microsoft.com/detail/9wzdncrfhvn5?hl=ja-jp&gl=JP

winget show コマンドでも、Web 版 Microsoft Store にしても、検索しないといけないのは変わらないのでなんだかな~ってかんじです。

イベントログを眺めていたら

別件で、System のイベントログを眺めていたら ID19 でこんなのが記録されているのを見つけました。

インストールの成功: 次の更新プログラムが正しくインストールされました: 9WZDNCRFHVN5-MICROSOFT.WINDOWSCALCULATOR

この9から始まる英数字は、もしかして電卓のアプリ ID なのでは...
他のイベントログを見てみると、アプリをインストールするとその ID とアプリ名が System のイベントログに記録されるみたいでした。

イベントログから ID を Get

イベントログにアプリ ID が記録されることがわかったので、さくっと PowerShell でアプリの ID をリストできるスクリプトを作ってみました。

PowerShell スクリプト

イベントログから ID 19 とアプリインストール関連のイベントを抽出し、ID、Microsoft Store URL、アプリ名を CSV ファイルで出力するスクリプトです。

# イベントログファイル
$filePath = "C:\path\to\System.evtx"

# .evtx を .txt に置き換える
$outFilePath = $filePath -replace '\.evtx$', '_19.csv'

# ファイルが存在すれば削除
if (Test-Path -Path $outFilePath) {
    Remove-Item -Path $outFilePath
}

# ID からイベントログをフィルター
$eventdata = Get-WinEvent -Path $filePath -FilterXPath "Event/System[EventID=19]" |
Where-Object{$_.Message -match "(9[A-Z0-9]{11})"} | 
Select-Object @{ name = "Message"; expression = { $_.Message.Replace("`r`n", "").Replace("`r","").Replace("`n","") }} -Unique

# ID、Microsoft Store URL、アプリ名を CSV ファイルで出力
$array = New-Object System.Collections.ArrayList  
foreach ($data in $eventdata) {
    if ($data.Message -match "(9[A-Z0-9]{11})") {
        $id = $matches[1]
        $url = "https://apps.microsoft.com/detail/$($id.ToLower())`?hl=ja-jp&gl=JP"
        $appName = ($data.Message -split '-')[1]

        $Object = [PSCustomObject] @{
            id = $id
            url = $url
            appName = $appName
        }
        $array.Add($Object)
    }
}
$array | Sort-Object appName | Export-Csv -Path $outFilePath -NoTypeInformation -Encoding UTF8

実行結果まとめ

Windows 11 22H2 で実行した結果をまとめてみました。アプリ名は、実際に表示されているアプリの名前ではないので、対応付けが難しいかもしれません。
MICROSOFT.ZUNEMUSIC が、Windows メディア プレーヤーとは...

ID Microsoft Store URL アプリ名
9P1J8S7CCWWT https://apps.microsoft.com/detail/9p1j8s7ccwwt?hl=ja-jp&gl=JP Clipchamp.Clipchamp
9NFFX4SZZ23L https://apps.microsoft.com/detail/9nffx4szz23l?hl=ja-jp&gl=JP Microsoft.549981C3F5F10
9WZDNCRFHVFW https://apps.microsoft.com/detail/9wzdncrfhvfw?hl=ja-jp&gl=JP Microsoft.BingNews
9WZDNCRFJ3Q2 https://apps.microsoft.com/detail/9wzdncrfj3q2?hl=ja-jp&gl=JP Microsoft.BingWeather
9NBLGGH4NNS1 https://apps.microsoft.com/detail/9nblggh4nns1?hl=ja-jp&gl=JP Microsoft.DesktopAppInstaller
9MV0B5HZVK9Z https://apps.microsoft.com/detail/9mv0b5hzvk9z?hl=ja-jp&gl=JP Microsoft.GamingApp
9PKDZBMV1H3T https://apps.microsoft.com/detail/9pkdzbmv1h3t?hl=ja-jp&gl=JP Microsoft.GetHelp
9WZDNCRDTBJJ https://apps.microsoft.com/detail/9wzdncrdtbjj?hl=ja-jp&gl=JP MICROSOFT.GETSTARTED
9PMMSR1CGPWG https://apps.microsoft.com/detail/9pmmsr1cgpwg?hl=ja-jp&gl=JP Microsoft.HEIFImageExtension
9N4WGH0Z6VHQ https://apps.microsoft.com/detail/9n4wgh0z6vhq?hl=ja-jp&gl=JP Microsoft.HEVCVideoExtension
9WZDNCRD29V9 https://apps.microsoft.com/detail/9wzdncrd29v9?hl=ja-jp&gl=JP MICROSOFT.MICROSOFTOFFICEHUB
9WZDNCRFHWD2 https://apps.microsoft.com/detail/9wzdncrfhwd2?hl=ja-jp&gl=JP Microsoft.MicrosoftSolitaireCollection
9NBLGGH4QGHW https://apps.microsoft.com/detail/9nblggh4qghw?hl=ja-jp&gl=JP Microsoft.MicrosoftStickyNotes
9MW2LKJ0TPJF https://apps.microsoft.com/detail/9mw2lkj0tpjf?hl=ja-jp&gl=JP Microsoft.NET.Native.Framework.2.2
9PLL735RFDSM https://apps.microsoft.com/detail/9pll735rfdsm?hl=ja-jp&gl=JP Microsoft.NET.Native.Runtime.2.2
9PCFS5B6T72H https://apps.microsoft.com/detail/9pcfs5b6t72h?hl=ja-jp&gl=JP Microsoft.Paint
9NBLGGH10PG8 https://apps.microsoft.com/detail/9nblggh10pg8?hl=ja-jp&gl=JP MICROSOFT.PEOPLE
9NFTCH6J7FHV https://apps.microsoft.com/detail/9nftch6j7fhv?hl=ja-jp&gl=JP Microsoft.PowerAutomateDesktop
9NCTDW2W1BH8 https://apps.microsoft.com/detail/9nctdw2w1bh8?hl=ja-jp&gl=JP Microsoft.RawImageExtension
9MZ95KL8MR0L https://apps.microsoft.com/detail/9mz95kl8mr0l?hl=ja-jp&gl=JP Microsoft.ScreenSketch
9NBLGGH51CLL https://apps.microsoft.com/detail/9nblggh51cll?hl=ja-jp&gl=JP Microsoft.Services.Store.Engagement
9NBLGGH5R558 https://apps.microsoft.com/detail/9nblggh5r558?hl=ja-jp&gl=JP Microsoft.Todos
9P5VK8KZB5QZ https://apps.microsoft.com/detail/9p5vk8kzb5qz?hl=ja-jp&gl=JP Microsoft.UI.Xaml.2.7
9NSTH9KHZDLQ https://apps.microsoft.com/detail/9nsth9khzdlq?hl=ja-jp&gl=JP Microsoft.UI.Xaml.2.8
9NBLGGH3FRZM https://apps.microsoft.com/detail/9nblggh3frzm?hl=ja-jp&gl=JP Microsoft.VCLibs.140.00
9NBLGGH4RV3K https://apps.microsoft.com/detail/9nblggh4rv3k?hl=ja-jp&gl=JP Microsoft.VCLibs.140.00.UWPDesktop
9N4D0MSMP0PT https://apps.microsoft.com/detail/9n4d0msmp0pt?hl=ja-jp&gl=JP Microsoft.VP9VideoExtensions
9N5TDP8VCMHS https://apps.microsoft.com/detail/9n5tdp8vcmhs?hl=ja-jp&gl=JP Microsoft.WebMediaExtensions
9PG2DK419DRG https://apps.microsoft.com/detail/9pg2dk419drg?hl=ja-jp&gl=JP Microsoft.WebpImageExtension
9WZDNCRFJBH4 https://apps.microsoft.com/detail/9wzdncrfjbh4?hl=ja-jp&gl=JP Microsoft.Windows.Photos
9WZDNCRFJ3PR https://apps.microsoft.com/detail/9wzdncrfj3pr?hl=ja-jp&gl=JP MICROSOFT.WINDOWSALARMS
9P105T65H4Z5 https://apps.microsoft.com/detail/9p105t65h4z5?hl=ja-jp&gl=JP Microsoft.WindowsAppRuntime.1.3
9PB1QWVW0R95 https://apps.microsoft.com/detail/9pb1qwvw0r95?hl=ja-jp&gl=JP Microsoft.WindowsAppRuntime.1.4
9NH2SW16MQ7F https://apps.microsoft.com/detail/9nh2sw16mq7f?hl=ja-jp&gl=JP Microsoft.WindowsAppRuntime.1.5
9WZDNCRFHVN5 https://apps.microsoft.com/detail/9wzdncrfhvn5?hl=ja-jp&gl=JP MICROSOFT.WINDOWSCALCULATOR
9WZDNCRFJBBG https://apps.microsoft.com/detail/9wzdncrfjbbg?hl=ja-jp&gl=JP MICROSOFT.WINDOWSCAMERA
9WZDNCRFHVQM https://apps.microsoft.com/detail/9wzdncrfhvqm?hl=ja-jp&gl=JP MICROSOFT.WINDOWSCOMMUNICATIONSAPPS
9NBLGGH4R32N https://apps.microsoft.com/detail/9nblggh4r32n?hl=ja-jp&gl=JP Microsoft.WindowsFeedbackHub
9WZDNCRDTBVB https://apps.microsoft.com/detail/9wzdncrdtbvb?hl=ja-jp&gl=JP MICROSOFT.WINDOWSMAPS
9MSMLRH6LZF3 https://apps.microsoft.com/detail/9msmlrh6lzf3?hl=ja-jp&gl=JP Microsoft.WindowsNotepad
9WZDNCRFHWKN https://apps.microsoft.com/detail/9wzdncrfhwkn?hl=ja-jp&gl=JP MICROSOFT.WINDOWSSOUNDRECORDER
9WZDNCRFJBMP https://apps.microsoft.com/detail/9wzdncrfjbmp?hl=ja-jp&gl=JP MICROSOFT.WINDOWSSTORE
9N0DX20HK701 https://apps.microsoft.com/detail/9n0dx20hk701?hl=ja-jp&gl=JP Microsoft.WindowsTerminal
9NKNC0LD5NN6 https://apps.microsoft.com/detail/9nknc0ld5nn6?hl=ja-jp&gl=JP Microsoft.Xbox.TCUI
9NBLGGH537C2 https://apps.microsoft.com/detail/9nblggh537c2?hl=ja-jp&gl=JP Microsoft.XboxGameOverlay
9NZKPSTSNW4P https://apps.microsoft.com/detail/9nzkpstsnw4p?hl=ja-jp&gl=JP Microsoft.XboxGamingOverlay
9WZDNCRD1HKW https://apps.microsoft.com/detail/9wzdncrd1hkw?hl=ja-jp&gl=JP Microsoft.XboxIdentityProvider
9P086NHDNB9W https://apps.microsoft.com/detail/9p086nhdnb9w?hl=ja-jp&gl=JP Microsoft.XboxSpeechtoTextOverlay
9NMPJ99VJBWV https://apps.microsoft.com/detail/9nmpj99vjbwv?hl=ja-jp&gl=JP Microsoft.YourPhone
9WZDNCRFJ3PT https://apps.microsoft.com/detail/9wzdncrfj3pt?hl=ja-jp&gl=JP MICROSOFT.ZUNEMUSIC
9WZDNCRFJ3P2 https://apps.microsoft.com/detail/9wzdncrfj3p2?hl=ja-jp&gl=JP MICROSOFT.ZUNEVIDEO
9P7BP5VNWKX5 https://apps.microsoft.com/detail/9p7bp5vnwkx5?hl=ja-jp&gl=JP MicrosoftCorporationII.QuickAssist

さいごに

アプリの更新を一度してみないとこの方法で ID を確認することはできませんが、winget で未知のアプリをインストールする場面はないと思うのでよしとします。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?