インストールアプリをコマンドラインからアンインストール

PowerShellを使ってコマンドラインからアプリのアンインストールする方法を説明します。

ちくにゃん
ちくにゃん

コマンドラインから(PowerShell)からインストールされているアプリをアンインストールできないかな?

できればバッチファイルを作れるんだけどなあ〜。

天舞くん
天舞くん

コマンドラインからアプリの削除は

Get-Packageコマンドで対象のパッケージを特定し、結果をパイプでUninstall-Packageコマンドに渡して削除します。

対象のパッケージはワイルドカード「*」が使えます。

以下説明です。

  1. PowerShellを管理者で実行し、インストールされているアプリを表示します
    Get-Package | ft name
    削除するアプリがある程度わかっているのであれば
    Get-Package JUST* | ft name
    のように「*」(ワイルドカード)を使うことができます。
  2. 表示されたアプリから削除するアプリを確認しアンインストールを実行します。
    例:JUSTOffice関連でJUSTから始まるアプリケーションを削除
    Get-Package -Name "JUST*" | Uninstall-Package
    とします。
  3. ワイルドカード以外にも削除するアプリがある場合はアプリ名を変更し2を繰り返します。
    実行したコマンドをまとめてファイルを作り、.ps1という拡張子で保存します。
  4. バッチファイルからPowerShellを呼び出す方法
    powershell -NoProfile -ExecutionPolicy Unrestricted
    ここに3で作成したファイル(例えばJustOfficeRemove.ps1)を呼び出し実行します。
    powershell -NoProfile -ExecutionPolicy Unrestricted ./JustOfficeRemove.ps1
    ./は現在のディレクトリを明示的に指定しています。

インストールしたJustOfficeの試用版を一括削除するバッチファイルを作りました。

RmvPackage.bat

echo on
cd /d %~dp0
powershell -NoProfile -ExecutionPolicy Unrestricted .\JustOfficeRemove.ps1
set /p yn_check="Windowsを再起動します。よろしいですか? y(Y)で再起動 n(N)で再起動せずに終了 (y/n) "
IF %yn_check:Y=Y%==Y (
   shutdown /r /t 0
)

JustOfficeRemove.ps1

Get-Package -Name "JUST*" | Uninstall-Package
Get-Package -Name "ATOK Pro 6" | Uninstall-Package
Get-Package -Name "一太郎*" | Uninstall-Package
Get-Package -Name "花子Pro 6" | Uninstall-Package