もくじ
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"
dism
■dism /online /add-ProvisionedAppxPackage /PackagePath:"msixのパス(絶対/相対)" /skiplicense
VisualStuioのパッケージプロジェクトを右クリックして「公開」で作成したテスト用msixを、プロビジョンドとしてインストールしたいときに使う。使い方は下記。
- Powershellを管理者で起動
- 作成したmsixのフォルダにcdする
- 「msixのパス」のところに、作成したmsixの名前を入れて、実行する
すでにPCに同じアプリをVisualStudioでデバッグしてたり、ユーザーごとにmsixでインストールしてたりすると、「すでに同じパッケージが入ってます」的エラーで怒られるので、そのときは、上にあるRemove-AppxPackage -AllUsers xxxxxxxPackageFullNamexxxxxxxx
でそのパッケージを全ユーザー分Removeしてから実行する。