PowerShellを使用してWindows 10の不要なアプリを削除する方法

Windows 10には、電卓や天気などの基本的なアプリからメールや写真などのタスクに特化したアプリまで、さまざまな組み込みアプリが含まれています。これらの組み込みアプリは、ほとんどの場合には問題ありませんが、ビジネス環境では不適切、重複、またはサポートされていない場合があります。これらのアプリは、セキュリティリスクを引き起こす可能性があります。そのため、この記事では、PowerShellを使用してWindows 10のアプリを削除する方法を学びます。

問題は、Microsoftがこれらのアプリのアンインストールを容易にしないことです。通常の方法でアンインストールする際には、アンインストールボタンがありません。組み込みアプリは、PowerShellを使用してアンインストールする必要があります。

免責事項:すべてのWindows 10アプリをアンインストールしないでください。それらの多くはWindows 10の「エクスペリエンス」に必要なものであり、他のプログラムには.NETフレームワークのようなものが必要です。アンインストールするアプリケーションを慎重に選択してください。ただし、すべてのアプリケーションを再インストールすることもでき、この記事の最後にそのためのPowerShellコマンドが表示されます

PowerShellを使用してWindows 10アプリを検索する

実際には、2種類の異なる種類のアプリを扱うことになります。

  • AppXパッケージ – オペレーティングシステムとともにインストールされるアプリ
  • AppXプロビジョンされたパッケージ – ユーザープロファイルの初回セットアップ時にインストールされるアプリ

最初のステップは、インストールされているアプリのインベントリを取得することです。それには、昇格した特権でPowerShellを起動し、コマンドGet-AppxPackageを実行します。これにより、Windows 10にインストールされているすべてのAppXパッケージが返されます。

PS C:\> Get-AppxPackage

Name              : Microsoft.NET.Native.Framework.1.6
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 1.6.24903.0
PackageFullName   : Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
IsFramework       : True
PackageFamilyName : Microsoft.NET.Native.Framework.1.6_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok
--snip--

提供されたパッケージには、わずかに異なるコマンドがあり、Onlineパラメータも必要です。 Onlineパラメータは、ローカルディレクトリにあるイメージファイルではなく、現在のオンラインのオペレーティングシステムからパッケージを取得します。これにより、各パッケージの詳細に関するリストが表示されます。

PS C:\> Get-AppxProvisionedPackage -Online


DisplayName  : Microsoft.3DBuilder
Version      : 16.1.1431.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.3DBuilder_16.1.1431.0_neutral_~_8wekyb3d8bbwe
Regions      :

DisplayName  : Microsoft.BingWeather
Version      : 4.31.11905.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.BingWeather_4.31.11905.0_neutral_~_8wekyb3d8bbwe
Regions      :
--snip--

アプリのリストを絞り込む

これらのコマンドのいずれもかなり冗長なリストを生成しますが、興味のあるのはAppxパッケージのNameと提供されたパッケージのDisplayNameです。

Details of Get-AppxPackage listing
Listing for get-appxprovisionedpackage

作業を少し簡単にするために、結果をSelect-Objectを通してパイプし、NameDisplayNameのプロパティを選択します。これにより、以下のようなリストが得られます。このリストは作業しやすくなります。

Get-AppxPackage | Select-Object Name
Output of get-appxpackage | select object name

これで、削除したいWindows 10アプリを確認できます。この時点で、削除したいパッケージのすべての名前をリストアップする必要があります。その方法の一つは、削除したいWindows 10アプリをコピーして貼り付け、その方法でリストを作成することです。私が使用するトリックの一つは、結果をテキストファイルに保存し、それをVisual Studio Codeで開くことです。例えば:

Get-AppxPackage | Select-object name | Out-File apps.txt | code apps.txt

外部エディタで、削除するアプリの配列を作成し始めます。

$ProvisionedAppPackageNames = @()

リストができたので、PowerShellスクリプトの作成を開始できます。

PowerShellを使用してWindows 10アプリを削除する

エディタで定義された配列には、削除したいすべてのAppXパッケージの名前が含まれているはずです。以下に例を示します。

$ProvisionedAppPackageNames = @(
    "Microsoft.BingFinance"
    "Microsoft.BingNews"
    "Microsoft.BingSports"
    "Microsoft.BingWeather"
    "Microsoft.MicrosoftOfficeHub"
    "Microsoft.Getstarted"
    "microsoft.windowscommunicationsapps" # Mail, Calendar
    "Microsoft.Office.OneNote"
    "Microsoft.People"
    "Microsoft.SkypeApp"
    "Microsoft.XboxApp"
    "Microsoft.ZuneMusic"
    "Microsoft.ZuneVideo"
)

特定のアプリケーションを削除するために配列が満たされたら、Remove-AppXProvisionedPackageコマンドレットとRemove-AppXPackageコマンドレットを使用して、foreachループを設定できます。

foreach ($ProvisionedAppName in $ProvisionedAppPackageNames) {
    Get-AppxPackage -Name $ProvisionedAppName -AllUsers | Remove-AppxPackage
    Get-AppXProvisionedPackage -Online | Where-Object DisplayName -EQ $ProvisionedAppName | Remove-AppxProvisionedPackage -Online
}

すべてのアプリケーションを再インストールしたい場合は、add-AppXPackageコマンドレットを使用して、Windows 10アプリを再登録できます。以下にアプリケーションのマニフェストXMLファイルを指定する例を示します。

Get-AppxPackage -AllUsers | Foreach {
    Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"
}

要約

MicrosoftはWindows 10アプリのアンインストールを簡単にはできませんが、PowerShellを使えば常に対処できることが分かります!

Source:
https://adamtheautomator.com/remove-windows-10-apps/