【Intune】【Autopilotデバイス】プリインストールアプリの削除の配布方法

検出規則画面 Autopilot

こんにちは、ナガイです。

今回は、【プリインストールアプリの削除をIntune配布で実施する方法】をご紹介します。
PCからのプリインストールアプリの削除方法やIntuneでの設定配布方法は、インターネットを調べればそれぞれの設定方法がたくさん紹介されているのですが、プリインストールアプリ削除の設定をIntuneで配布する設定方法は調べても見つかりません。

私がいろいろ調査し、見つけた情報を基に検証した結果、設定することができた方法を本日はご紹介したいと思います。

削除方法全体の流れ

Intuneへの設定は以下の流れで実施します。
本ページでは、PowerShellコマンドをintunewinファイルに変換し、Win32アプリで配布します。

  1. インプットファイルの作成
  2. Intunewinファイルへの変換
  3. Intuneへの設定

インプットファイルの作成

1.PowerShell ISEを開きます。(権限は一般でも、管理者でもどちらでも問題ありません。)

2.以下のコマンドをコピペし、「#削除したいプリインストールアプリの名前を記述します。」の下部に削除したいアプリ名を追記します。

# intuneでコマンドが実行された場合に、tagファイルを生成します。
if (-not (Test-Path "$($env:ProgramData)\Microsoft\RemoveBloatware"))
{
    Mkdir "$($env:ProgramData)\Microsoft\RemoveBloatware"
}
Set-Content -Path "$($env:ProgramData)\Microsoft\RemoveBloatware\RemoveBloatware.ps1.tag" -Value "Installed"

# ログ記述開始
Start-Transcript "$($env:ProgramData)\Microsoft\RemoveBloatware\RemoveBloatware.log"


# 削除したいプリインストールアプリの名前を記述します。
$UninstallPackages = @(
    "Microsoft.Xbox.TCUI"
    "Microsoft.XboxApp"
    "Microsoft.XboxGameOverlay"
    "Microsoft.XboxGamingOverlay"
    "Microsoft.XboxIdentityProvider"
    "Microsoft.WindowsMaps"
    "Microsoft.BingWeather"
    "Microsoft.BingNews"
    "Microsoft.Microsoft.MicrosoftSolitaireCollection"
)


$InstalledPackages = Get-AppxPackage -AllUsers | Where {($UninstallPackages -contains $_.Name)}

$ProvisionedPackages = Get-AppxProvisionedPackage -Online | Where {($UninstallPackages -contains $_.DisplayName)}

# 最初にプロビジョニングパッケージを削除します。
ForEach ($ProvPackage in $ProvisionedPackages) {

    Write-Host -Object "Attempting to remove provisioned package: [$($ProvPackage.DisplayName)]..."

    Try {
        $Null = Remove-AppxProvisionedPackage -PackageName $ProvPackage.PackageName -Online -ErrorAction Stop
        Write-Host -Object "Successfully removed provisioned package: [$($ProvPackage.DisplayName)]"
    }
    Catch {Write-Warning -Message "Failed to remove provisioned package: [$($ProvPackage.DisplayName)]"}
}

# アプリパッケージを削除します。
ForEach ($AppxPackage in $InstalledPackages) {

    Write-Host -Object "Attempting to remove Appx package: [$($AppxPackage.Name)]..."

    Try {
        $Null = Remove-AppxPackage -Package $AppxPackage.PackageFullName -AllUsers -ErrorAction Stop
        Write-Host -Object "Successfully removed Appx package: [$($AppxPackage.Name)]"
    }
    Catch {Write-Warning -Message "Failed to remove Appx package: [$($AppxPackage.Name)]"}
}


Stop-Transcript

3.ファイル名を「RemoveApps.ps1」として保存します。

Intunewinファイルへの変換

Win32アプリ配布するために、作成したファイルをIntunewinファイルへ変換します。

Microsoft Win32 コンテンツ準備ツールをダウンロードする

Intuneで、Win32アプリ配布を行いたいときは、必ず事前にintunewinファイルに形式を変換する必要があります。この変換を行ってくれるツールをMicrosoftが準備してくれています。詳細は以下の公開情報をご参考ください。

Microsoft Intune にアップロードする Win32 アプリを準備する
Microsoft Intune にアップロードする Win32 アプリを準備する方法を説明します。

1.以下のサイトにアクセスします。

GitHub - microsoft/Microsoft-Win32-Content-Prep-Tool: A tool to wrap Win32 App and then it can be uploaded to Intune
A tool to wrap Win32 App and then it can be uploaded to Intune - microsoft/Microsoft-Win32-Content-Prep-Tool

2.[<>Code]のプルダウンをクリックし、[Download ZIP]をクリックします。

3.ダウンロードされたzipファイルを解凍、展開します。

PS1ファイルをintunewinファイルに変換する

1.展開されたファイルから「IntuneWinAppUtill.exe」を管理者権限で開きます。

2.コマンドプロンプトが立ち上がります。それぞれの値を入力しそれぞれEnterをおしてください。

  • Please specify the source folder: → RemoveApps.ps1の格納されているフォルダパス
  • Please specify the setup file: → 「RemoveApps.ps1」
  • Please specify the output folder: → 変換したintunewinファイルを格納したいパス
  • Do you want to specify catalog folder (Y/N)? → Nを入力してください。

3.成功すると、output folderに指定したフォルダにintunewinファイルが生成されます。

Intuneへの設定

1.Intune管理センターを開きます。

2.[アプリ]-[Windows]をクリックします。

3.[ + 追加 ]をクリックします。

4.アプリの種類から[ Windowsアプリ(Win32) ]を選びます。

5. [ 選択 ]をクリックします。

6. [ アプリ パッケージ ファイルの選択 ]をクリックします。

7.上述の手順で作成したintunewinファイル(RemoveApps.intunewin)を選択し,[ OK ]を選択します。

8.『アプリ情報』の画面にて、以下を入力します。

  • 発行元:(適当)
  • そのほかの項目:必要に応じて設定

9.『プログラム』の画面にて、以下を入力し、[ 次へ ]をクリックします。

  • インストールコマンド:powershell.exe -noprofile -executionpolicy bypass -file .\RemoveApps.ps1
  • アンインストールコマンド:cmd.exe /c del %ProgramData%\Microsoft\RemoveBloatware\RemoveBloatware.ps1.tag
  • インストールの処理:システム
  • そのほかの項目:適時設定してください

10.『必要条件』の画面で、以下を入力し、[ 次へ ]をクリックします。

  • オペレーティング システムのアーキテクチャ:32ビット、64ビット
  • 最低限のオペレーティング システム:配布したいデバイスのバージョンが包括されるもの

11.『検出規則』の画面で、[ 規則の形式 ]から [ 検出規則を手動で構成する ]を選択します。

12.[ + 追加 ]をクリックします。

13.『検出規則』画面が表示されるので、以下を入力し、[ OK ]をクリックします。

  • 規則の種類:ファイル
  • パス:%ProgramData%\Microsoft\RemoveBloatware
  • ファイルまたはフォルダ―:RemoveBloatware.ps1.tag
  • 検出方法:ファイルまたはフォルダ―が存在する

14.元の画面に戻るので、[ 次へ ]をクリックします。

15.『依存関係』は特に設定がないので、[ 次へ ]をクリックします。

16.『置き換え』にも設定はありませんので、[ 次へ ]をクリックします。

17.『割り当て』の「必須」に配布したいデバイスを追加し、[ 次へ ]をクリックします。

18.『確認と作成』で、設定値を確認し問題なければ、[ 作成 ]をクリックします。

設定方法は以上となります。

デバイス上でのログ確認方法

Intuneでのアプリ配布方法が利用しにくい理由の一つにログが取得しづらいということが挙げられます。今回ご紹介した方法では、プリインストールアプリを削除したログを残すようにコーディングされていますので、もし気になる方は以下の方法で内容をご確認ください。

1.RemoveApps.ps1が実行されたデバイスで、エクスプローラを開きます。

2.以下のパスを入力します。

パス:%ProgramData%\Microsoft\RemoveBloatware

3.パスが通ると、2つのファイルがあると思います。

  • RemoveBloatware:実行されたPowershellについての結果を記したログファイルです。
  • RemoveBloatware.ps1.tag:Intuneの検出規則で利用するファイルです。触らないでください。

4.RemoveBloatwareを開きます。内容を確認し、削除できていないものがないかを確認してください。

削除を再実行したい場合 (2024.7.31更新)

プリインストールアプリの削除がうまくいかず、再実行したい場合ですが、上記で記載している「RemoveBloatware.ps1.tag」ファイルを削除してください
検出規則をこのtagファイルがあるかどうかに設定しているため、Intuneがデバイスを確認する際に、tagファイルがないため、コマンドが再実行されます。

最後に

本日の解説は以上となります。

Autopilotデバイスでキッティングを行っていきたい情報システム部の方からするとプリインストールアプリの削除は、避けては通れない部分かと思います。この方法を使って、より簡易にキッティングできるようにして、より効率的なデバイスキッティングを目指していきましょう。

このほかにも、さまざまな構成ファイル設定やアプリ配布実績が私にはあります。
もし、Autopilot技術に興味がある、自分たちのPC設定内容がどこまで実現できるのか知りたいなど、ご相談ベースでも構いません。ご連絡いただけましたら、調査することも可能でございますので気軽にご相談ください。

404 NOT FOUND | クラウドサービスビギナーブログ

コメント