【Windows11】インストール済みアプリ一覧をCSV出力する方法

Windows11でインストール済みアプリの一覧をPowerShellコマンドでCSV出力する方法を解説します。管理者権限の有無に応じた2つのパターンと、実行手順から出力結果の確認までを整理して解説します。

この記事では、個人PCでの簡単なアプリ確認から、企業環境での全ユーザー分アプリ管理まで対応できるPowerShellコードを紹介します。出力されたCSVファイルは、PC環境の棚卸しや社内システム管理、新規PCセットアップ時のアプリ確認などに幅広く活用できます。

PowerShellを使用してCSVに出力した現在インストールされているアプリの一覧
PowerShellを使用してCSVに出力した現在インストールされているアプリの一覧
目次

PowerShellでインストール済みアプリをCSV出力する方法(管理者権限不要)

Windows11でインストール済みアプリ一覧を管理者権限なしでCSV出力したい場合に最適な方法です。以下のPowerShellコマンドをコピーして貼り付けるだけで、現在インストールされている全アプリの詳細情報をCSV形式で簡単に取得できます。

PowerShell 5.1とPowerShell 7の両方に対応しており、OneDrive同期環境でも安全に動作します。出力されたCSVファイルはデスクトップに保存され、Excel等で開いてアプリ管理やPC環境の棚卸しに活用できます。

<# ======================================================================
  インストール済みアプリ一覧をCSVに出力(ユーザー用:管理者権限なし)
  対象: 現在ログオン中ユーザーの Win32 + UWP/Store アプリ
  互換: PowerShell 5.1 / 7 系(BOM付きUTF-8)
  特色: OneDrive デスクトップ対応、UWP失敗しても処理継続
====================================================================== #>

# --- 出力先(OneDrive デスクトップ対応) -----------------------------------------
$Desktop = [Environment]::GetFolderPath('Desktop')          # OSが認識する実在のデスクトップ
$CsvPath = Join-Path $Desktop 'InstalledApplications.csv'
New-Item -ItemType Directory -Force -Path (Split-Path $CsvPath) -ErrorAction SilentlyContinue | Out-Null

# --- Win32(従来型)アプリ取得:64bit/32bit/HKCU を横断 --------------------------
$regPaths = @(
  'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',        # 64bit
  'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*', # 32bit
  'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*'         # 現在ユーザー
)
$RegApps = foreach ($p in $regPaths) {
  Get-ItemProperty $p -ErrorAction SilentlyContinue |
    Where-Object {
      $_.DisplayName -and
      (-not $_.SystemComponent -or $_.SystemComponent -eq 0) -and
      (-not $_.ReleaseType -or ($_.ReleaseType -notin 'Update','Hotfix')) -and
      (-not $_.ParentKeyName)
    } |
    Select-Object @{
        Name='Name';       Expression={$_.DisplayName}
      },@{
        Name='Version';    Expression={$_.DisplayVersion}
      },@{
        Name='Publisher';  Expression={$_.Publisher}
      },@{
        # レジストリの InstallDate は yyyyMMdd 文字列のことが多い → DateTimeへ
        Name='InstallDate';Expression={
          if ($_.PSObject.Properties.Name -contains 'InstallDate' -and $_.InstallDate -match '^\d{8}$') {
            [datetime]::ParseExact($_.InstallDate,'yyyyMMdd',$null)
          } else { $null }
        }
      }
}

# --- UWP/Store(現在ユーザー)取得:環境差が大きいので try/catch で保護 ----------
$UWPApps = @()
try {
  if ($PSVersionTable.PSEdition -eq 'Core') {
    # PS7系では WinPS モジュールを互換セッション経由で読み込む
    Import-Module Appx -UseWindowsPowerShell -ErrorAction Stop
  } else {
    Import-Module Appx -ErrorAction Stop
  }

  $UWPraw = Get-AppxPackage    # 現在ユーザーのみ
  $UWPApps = $UWPraw | Select-Object @{
      Name='Name';       Expression={$_.Name}        # 例: Microsoft.WindowsNotepad
    },@{
      Name='Version';    Expression={$_.Version}
    },@{
      Name='Publisher';  Expression={$_.Publisher}
    },@{
      # 5.1互換のため ?. を使わずに順次チェック
      Name='InstallDate';Expression={
        if ($_.PSObject.Properties['InstallDate']) { $_.PSObject.Properties['InstallDate'].Value }
        elseif ($_.PSObject.Properties['InstallTime']) { $_.PSObject.Properties['InstallTime'].Value }
        elseif ($_.PSObject.Properties['DateModified']) { $_.PSObject.Properties['DateModified'].Value }
        else { $null }
      }
    }
}
catch {
  Write-Warning "UWP(Appx)取得をスキップ:$($_.Exception.Message)"
}

# --- 統合 → 重複排除(Name+Version+Publisher をキーに -Unique) → 名前順 -------
$AllApps =
  @($RegApps + $UWPApps) |
  Select-Object Name, Version, Publisher, InstallDate |
  Sort-Object Name, Version, Publisher -Unique |
  Sort-Object Name

# --- CSV 出力(PS7→utf8BOM / PS5.1→UTF8:いずれもBOM付き) ---------------------
$enc = if ($PSVersionTable.PSVersion.Major -ge 7) { 'utf8BOM' } else { 'UTF8' }
$AllApps | Export-Csv -Path $CsvPath -NoTypeInformation -Encoding $enc

Write-Host "CSV 出力完了(現在ユーザーのみ):$CsvPath  件数:$($AllApps.Count)"

PowerShellでインストール済みアプリをCSV出力する方法(管理者権限必要)

Windows11で全ユーザー分のインストール済みアプリ一覧を管理者権限でCSV出力する方法です。PowerShellを管理者として実行することで、全ユーザーのアプリとMicrosoft Storeアプリ(UWP)まで幅広く取得できます。

社内PC管理や共用PCでのアプリ棚卸しに最適で、PowerShellコマンドをコピーして貼り付けるだけで詳細なアプリ一覧をCSV形式で出力可能です。管理者権限がない場合でも、全ユーザーのMicrosoft Storeアプリ取得のみスキップして、通常のアプリは正常に出力されます。

<# ======================================================================
  インストール済みアプリ一覧をCSVに出力(管理者用:全ユーザー対象)
  対象: Win32(HKLM/HKCU) + UWP/Store(-AllUsers)
  互換: PowerShell 5.1 / 7 系(BOM付きUTF-8)
  特色: OneDrive デスクトップ対応、UWP失敗しても処理継続
====================================================================== #>

# --- 管理者チェック(任意:権限不足の早期気づき用) ----------------------------
function Test-IsAdmin {
  $current = [Security.Principal.WindowsIdentity]::GetCurrent()
  $principal = New-Object Security.Principal.WindowsPrincipal($current)
  return $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
}
if (-not (Test-IsAdmin)) {
  Write-Warning "管理者権限ではありません。UWP の -AllUsers は失敗します。管理者として実行してください。"
}

# --- 出力先(OneDrive デスクトップ対応) -----------------------------------------
$Desktop = [Environment]::GetFolderPath('Desktop')
$CsvPath = Join-Path $Desktop 'InstalledApplications_AllUsers.csv'
New-Item -ItemType Directory -Force -Path (Split-Path $CsvPath) -ErrorAction SilentlyContinue | Out-Null

# --- Win32(従来型)アプリ取得 --------------------------------------------------
$regPaths = @(
  'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',            # 64bit
  'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*',# 32bit
  'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*'             # 現在ユーザー
)
$RegApps = foreach ($p in $regPaths) {
  Get-ItemProperty $p -ErrorAction SilentlyContinue |
    Where-Object {
      $_.DisplayName -and
      (-not $_.SystemComponent -or $_.SystemComponent -eq 0) -and
      (-not $_.ReleaseType -or ($_.ReleaseType -notin 'Update','Hotfix')) -and
      (-not $_.ParentKeyName)
    } |
    Select-Object @{
        Name='Name';       Expression={$_.DisplayName}
      },@{
        Name='Version';    Expression={$_.DisplayVersion}
      },@{
        Name='Publisher';  Expression={$_.Publisher}
      },@{
        Name='InstallDate';Expression={
          if ($_.PSObject.Properties.Name -contains 'InstallDate' -and $_.InstallDate -match '^\d{8}$') {
            [datetime]::ParseExact($_.InstallDate,'yyyyMMdd',$null)
          } else { $null }
        }
      }
}

# --- UWP/Store(全ユーザー)取得:管理者必須 -------------------------------------
$UWPApps = @()
try {
  if ($PSVersionTable.PSEdition -eq 'Core') {
    Import-Module Appx -UseWindowsPowerShell -ErrorAction Stop
  } else {
    Import-Module Appx -ErrorAction Stop
  }

  $UWPraw = Get-AppxPackage -AllUsers      # ★全ユーザー分を取得(管理者必須)
  $UWPApps = $UWPraw | Select-Object @{
      Name='Name';       Expression={$_.Name}
    },@{
      Name='Version';    Expression={$_.Version}
    },@{
      Name='Publisher';  Expression={$_.Publisher}
    },@{
      Name='InstallDate';Expression={
        if ($_.PSObject.Properties['InstallDate']) { $_.PSObject.Properties['InstallDate'].Value }
        elseif ($_.PSObject.Properties['InstallTime']) { $_.PSObject.Properties['InstallTime'].Value }
        elseif ($_.PSObject.Properties['DateModified']) { $_.PSObject.Properties['DateModified'].Value }
        else { $null }
      }
    }
}
catch {
  Write-Warning "全ユーザー UWP(Appx)取得をスキップ:$($_.Exception.Message)"
}

# --- 統合 → 重複排除(Name+Version+Publisher)→ 名前順 --------------------------
$AllApps =
  @($RegApps + $UWPApps) |
  Select-Object Name, Version, Publisher, InstallDate |
  Sort-Object Name, Version, Publisher -Unique |
  Sort-Object Name

# --- CSV 出力(PS7→utf8BOM / PS5.1→UTF8:いずれもBOM付き) ---------------------
$enc = if ($PSVersionTable.PSVersion.Major -ge 7) { 'utf8BOM' } else { 'UTF8' }
$AllApps | Export-Csv -Path $CsvPath -NoTypeInformation -Encoding $enc

Write-Host "CSV 出力完了(全ユーザー対象):$CsvPath  件数:$($AllApps.Count)"

PowerShellコマンドの実行手順

Windows11でインストール済みアプリ一覧をCSVに出力するPowerShellコードの実行手順は簡単です。

  1. PowerShellを起動する(管理者権限が必要な場合は「管理者として実行」)
  2. 上記のPowerShellコードをコピーしてPowerShell画面に貼り付ける
  3. セキュリティ警告が表示されたら「強制的に貼り付け」をクリック

実行が完了すると、デスクトップにInstalledApplications.csv(管理者権限版はInstalledApplications_AllUsers.csv)が自動作成されます。

STEP
PowerShellを起動する(管理者権限が必要な場合は「管理者として実行」)

まずPowerShellを起動してください。(管理者権限が必要な場合は「PowerShellを管理者として実行」してください。)

インストール済みアプリの一覧をPowerShellコマンドでCSV出力する方法 - Step1:PowerShellを起動する(管理者権限が必要な場合は「管理者として実行」)
インストール済みアプリの一覧をPowerShellコマンドでCSV出力する方法 - Step1
STEP
「コピーボタン」をクリック

紹介しているPowerShellコードの右上にある「コピーボタン」をクリックしてください。

インストール済みアプリの一覧をPowerShellコマンドでCSV出力する方法 - Step2:「コピーボタン」をクリック
インストール済みアプリの一覧をPowerShellコマンドでCSV出力する方法 - Step2
STEP
PowerShellにコードを貼り付け、「強制的に貼り付け」をクリック

次に、PowerShellの画面に戻り、Ctrl+Vでコピーしたコードを貼り付けてください。

貼り付けるとPowerShellに警告画面が表示されます。

最後に「強制的に貼り付け」をクリックしてください。

この警告は、悪意のあるコードの貼り付けを防ぐPowerShellのセキュリティ機能です。「強制的に貼り付け」をクリックすることは、そのコードの実行を許可する、という意思表示になります。

インストール済みアプリの一覧をPowerShellコマンドでCSV出力する方法 - Step3:PowerShellにコードを貼り付け、「強制的に貼り付け」をクリック
インストール済みアプリの一覧をPowerShellコマンドでCSV出力する方法 - Step3
STEP
PowerShellコマンドが無事終了したことを確認する

「強制的に貼り付け」をクリックするとコードが実行され、「CSV出力完了」と表示されます。

これで、ログインしているユーザーアカウントのデスクトップにCSVファイルが作成されます。

インストール済みアプリの一覧をPowerShellコマンドでCSV出力する方法 - Step4:PowerShellコマンドが無事終了したことを確認する
インストール済みアプリの一覧をPowerShellコマンドでCSV出力する方法 - Step4

インストール済みアプリ一覧をCSV出力する方法に関するよくある質問と答え

最後に、Windows11でインストール済みアプリ一覧をCSV出力する方法に関するよくある質問と答えをまとめました。

Windows11にインストールされているアプリの一覧をCSVで出力する方法は?

この記事で紹介しているPowerShellスクリプトをコピーし、PowerShell画面に貼り付けて実行するだけで、デスクトップにインストール済みアプリ一覧のCSVファイルが自動で作成されます。

PCのソフトウェア棚卸しのために、アプリ一覧を出力するには?

この記事の「管理者権限必要」版スクリプトが最適です。PCにインストールされている全ユーザーのアプリを網羅的にリスト化できるため、正確なソフトウェア資産の棚卸しや管理台帳の作成にそのまま活用できます。

PowerShellでコマンドを実行すると、なぜか赤いエラーが表示されます。

PowerShellのセキュリティ設定である「実行ポリシー」が原因の可能性が高いです。スクリプトを実行する前にSet-ExecutionPolicy RemoteSigned -Scope Processというコマンドを一度実行し、ポリシーを一時的に許可してから、再度スクリプトを貼り付けてみてください。

「UWP(Appx)取得をスキップ」という黄色の警告が出ても大丈夫ですか?

はい、問題ありません。それはUWPアプリ(Microsoft Storeのアプリ)の取得に失敗したことを示す警告ですが、処理は続行され、従来型のWin32アプリの一覧は正常にCSV出力されています。

PowerShell起動時に「新機能と改善のために最新の PowerShell をインストールしてください」と表示されます。

これはWindows11標準のPowerShell 5.1を使用している際の通知です。紹介しているスクリプトはPowerShell 5.1でも問題なく動作しますが、最新版にアップグレードする場合は「PowerShellの最新バージョンをインストールする方法」をご覧ください。

出力されたCSVのアプリ数と、コントロールパネルの一覧の数が合いません。

PowerShellは、Windows11のコントロールパネルには表示されないシステムコンポーネントやランタイムなども取得するため、より正確で包括的な一覧が出力されます。そのため件数は必ず多くなります。

PowerShellの「強制的に貼り付け」という警告をクリックしても安全ですか?

はい、この記事で紹介しているコードは安全です。この警告は、インターネットからコピーしたコードを安易に実行させないためのPowerShellの標準的なセキュリティ機能です。信頼できる発行元のコードであることを確認した上でクリックしてください。

実行後、作成されたCSVファイルはどこに保存されますか?

スクリプトを実行したユーザーのデスクトップ上に保存されます。ファイル名はInstalledApplications.csvまたはInstalledApplications_AllUsers.csvです。

このスクリプトはWindows10でも動作しますか?

はい、動作します。本スクリプトで利用しているPowerShellのコマンドはWindows10と互換性があるため、OSのバージョンを問わずお使いいただけます。

スクリプトに出てくる「Win32アプリ」と「UWPアプリ」の違いは何ですか?

「Win32アプリ」は昔からある一般的なデスクトップソフト、「UWPアプリ」はMicrosoft Storeからインストールする新しい形式のアプリです。ここで紹介しているスクリプトは、これら両方の形式に対応しています。

出力されたCSVを確認すると、一部のアプリで「InstallDate(インストール日)」が空欄なのはなぜですか?

アプリケーション側がインストール日をレジストリに記録していないためです。これはPowerShellスクリプトの問題ではなく、アプリ開発元の仕様によるものです。

CSVをExcelで開くと文字化けするのですが、どうすれば治りますか?

このスクリプトは文字化けしにくい「UTF-8 BOM付き」で出力しています。もし文字化けした場合は、Excelの「データ」タブから「テキストまたはCSVから」を選択し、データのインポートウィザードで文字コードに「65001 : Unicode (UTF-8)」を指定して開いてください。

このスクリプトを使ってアプリをアンインストールすることもできますか?

いいえ、できません。このスクリプトの機能は、あくまでインストールされているアプリの「一覧を出力する」ことだけです。アンインストール機能はありません。

情シスの実務において、このアプリ一覧が最も役立つのはどんな場面ですか?

ソフトウェアの脆弱性対応やライセンス監査といった、インシデント対応時に真価を発揮します。このスクリプトで全PCのアプリ情報をCSVとして収集・横断検索すれば、「脆弱性を持つ特定のアプリ」が導入されたPCを数分で洗い出せます。

最後までご覧いただき、ありがとうございました。
記事の内容は独自検証に基づくものであり、MicrosoftやAdobeなど各ベンダーの公式見解ではありません。
環境によって結果が異なる場合がありますので、参考のうえご利用ください。

誤りのご指摘・追記のご要望・記事のご感想は、記事のコメント欄またはこちらのお問い合わせフォームからお寄せください。個人の方向けには、トラブルの切り分けや設定アドバイスも実施します。

※Microsoft、Windows、Adobe、Acrobat、Creative Cloud、Google Chromeほか記載の製品名・サービス名は各社の商標または登録商標です。

公式情報・関連資料と検証環境
公式情報・関連資料
実行環境詳細と検証日
  • OS:Windows 11 Home 24H2(64bit)
    ※本記事の手順は Windows11 Home / Pro / Enterpriseで共通です(ポリシーで制限された環境を除く)。
  • ハードウェア:Intel(R) Core(TM) Ultra 7 155H (1.40 GHz) / 32GB RAM
  • 最終検証日:2025年9月22日
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

情シスの自由帳管理人のアバター 情シスの自由帳管理人 情シスの自由帳管理人

社内SE歴15年以上。現在も社内のPC管理・ネットワーク・サーバー運用から、日常的なトラブル対応、プログラム開発まで幅広く従事しています。
「情シスの自由帳」では、パソコンが苦手な方や新人の社内SEの方、テレワーク中に困りごとがある方に向けて、実務経験に基づいた再現性の高い解説を心がけています。

【基本検証環境】
Windows 11 Home(64bit)/Intel(R) Core(TM) Ultra 7 155H(1.40GHz)/32GB RAM

コメント

コメント一覧 (2件)

コメントする

目次