自分がよく使いそうなPoweShellコマンド早見表

もくじ
https://tera1707.com/entry/2022/02/06/144447

やりたいこと

WinUI3のアプリを作っているが、よく実装の実験のためにパッケージするタイプのWinUI3アプリを新規で作ってお試し実装することがあるのだが、それをやると、自分のPCに、実験用アプリがたくさんインストールされてしまう。

そいつらを表示したり削除したりするのにPowerShellのコマンドが便利そうなので、どんなのがあるか調べたい。

コマンド

Get-AppxPackage

Get-AppxPackage (Appx) | Microsoft Learn

Get-AppxPackage
ログイン中のユーザーにインストールされているパッケージを表示する。

Get-AppxPackage -AllUsers
全ユーザーにインストールされているパッケージを表示する。要管理者権限。

Get-AppxPackage -Name *Amazon* もしくは Get-AppxPackage *Amazon*

Amazon」がパッケージのNameのどこかにつくパッケージを取得する。 「-Name」はパッケージの名前を取得するためのパラメータ。「-Name」は省略できる。

Get-AppxPackage *Amazon* | Select PackageFullName

Amazon」がパッケージのNameのどこかにつくパッケージのPackageFullNameを取得する。

Remove-AppxPackage

Remove-AppxPackage (Appx) | Microsoft Learn

Remove-AppxPackage xxxxxxxPackageFullNamexxxxxxxx

PackageFullNameが「xxxxxxxPackageFullNamexxxxxxxx」のパッケージをアンインストールする。

Remove-AppxPackage -AllUsers xxxxxxxPackageFullNamexxxxxxxx

ほかのユーザーがインストールしているパッケージをアンインストールする場合はこれ。要管理者権限。

Get-AppxPackage -Publisher *username* | Remove-AppxPackage

パブリッシャー名が「username」のパッケージを全部アンインストールする。
VisualStudioで作ってパッケージPJで実行したアプリは、全部パブリッシャー名が自分のユーザー名になるっぽいので、 スタートメニューに自分の実験したアプリがたくさん出てしまって鬱陶しい場合は、これで一括削除できそう。

Get-AppxProvisionedPackage

Get-AppxProvisionedPackage (DISM) | Microsoft Learn

Get-AppxProvisionedPackage -Online

今実行されているOSにインストールされているProvisionedPackageを取得する。
(ProvisionedPackage:新しくユーザーが作られたら、自動でインストールされるパッケージ)

Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like *Realtek* | Select-Object DisplayName

Realtek」みたいな名前のProvisionedPackageをとってきて、とれたやつのDisplayNameだけ表示する

cat ファイル名 -wait

リアルタイムにログを監視するコマンド。こちら参照。

Process-Start -FilePath "実行したいexe" ーArgumentList "引数"

プロセス(exe)を実行する。引数も渡せる。

Start-Process -FilePath "C:\Windows\notepad.exe" -ArgumentList "C:\mylog.log"

https://learn.microsoft.com/ja-jp/uwp/api/Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride?view=winrt-22621

dism

dism /online /add-ProvisionedAppxPackage /PackagePath:"msixのパス(絶対/相対)" /skiplicense

VisualStuioのパッケージプロジェクトを右クリックして「公開」で作成したテスト用msixを、プロビジョンドとしてインストールしたいときに使う。使い方は下記。

  • Powershellを管理者で起動
  • 作成したmsixのフォルダにcdする
  • 「msixのパス」のところに、作成したmsixの名前を入れて、実行する

すでにPCに同じアプリをVisualStudioでデバッグしてたり、ユーザーごとにmsixでインストールしてたりすると、「すでに同じパッケージが入ってます」的エラーで怒られるので、そのときは、上にあるRemove-AppxPackage -AllUsers xxxxxxxPackageFullNamexxxxxxxxでそのパッケージを全ユーザー分Removeしてから実行する。