PowerShellでシステム通知を表示する方法【モジュール不要・簡単】

Pocket

Windows では、バルーン通知(トースト通知)を表示する方法はいくつかあります。一般的には BurntToast モジュールを使う方法が知られていますが、この方法は Windows 10 専用 であり、また 追加のモジュールをインストールする必要がある ため、環境によっては利用できません。

そこで、本記事では PowerShell の標準機能のみ を使って、System.Windows.Forms.NotifyIcon を利用し、バルーン通知を表示する方法を詳しく解説します。Visual Studio のインストールも不要で、どの Windows 環境でも実行できます。


✅ PowerShell でバルーン通知を表示する方法

PowerShell には System.Windows.Forms という .NET Framework のライブラリがあり、その中に NotifyIcon という通知用のコンポーネントが含まれています。これを活用することで、簡単にバルーン通知を表示できます。

🔹 バルーン通知の基本スクリプト

まずは、最も基本的なバルーン通知を表示するスクリプトを紹介します。

# .NET の Windows Forms をロード
Add-Type -AssemblyName System.Windows.Forms

# NotifyIcon オブジェクトを作成
$notify = New-Object System.Windows.Forms.NotifyIcon
$notify.Icon = [System.Drawing.SystemIcons]::Information  # 情報アイコンを設定
$notify.BalloonTipTitle = "通知タイトル"
$notify.BalloonTipText = "これはPowerShellのバルーン通知です。"
$notify.Visible = $true  # アイコンをタスクトレイに表示

# バルーンを表示(ミリ秒単位で表示時間を指定)
$notify.ShowBalloonTip(5000)  # 5秒間表示

# アイコンを消す(不要なら削除)
Start-Sleep -Seconds 6
$notify.Dispose()

このスクリプトを PowerShell で実行すると、タスクバーの通知エリア(システムトレイ)に 情報アイコン付きのバルーン通知 が表示されます。


✅ バルーン通知のカスタマイズ

上記の基本スクリプトを少し拡張し、カスタマイズ可能なスクリプトを作成してみましょう。

🔹 カスタムバルーン通知

以下のスクリプトでは、通知タイトル、メッセージ、アイコン、表示時間 を自由に指定できます。

param (
    [string]$Title = "PowerShell通知",
    [string]$Message = "これはカスタムバルーン通知です。",
    [int]$Duration = 5000  # 表示時間(ミリ秒)
)

# Windows Forms をロード
Add-Type -AssemblyName System.Windows.Forms

# NotifyIcon オブジェクトを作成
$notify = New-Object System.Windows.Forms.NotifyIcon
$notify.Icon = [System.Drawing.SystemIcons]::Information  # アイコン(変更可能)
$notify.BalloonTipTitle = $Title
$notify.BalloonTipText = $Message
$notify.Visible = $true

# バルーンを表示
$notify.ShowBalloonTip($Duration)

# 指定時間後にアイコンを消す
Start-Sleep -Milliseconds ($Duration + 1000)
$notify.Dispose()

💡 スクリプトの実行例

PowerShell で以下のように実行すると、カスタムメッセージを表示できます。

powershell -File "balloon.ps1" -Title "システム警告" -Message "ディスクの空き容量が少なくなっています。" -Duration 8000

🔹 アイコンを変更する

デフォルトでは 「情報アイコン」 を使用していますが、以下のように変更できます。

$notify.Icon = [System.Drawing.SystemIcons]::Warning  # 警告アイコン

利用できるアイコン:

  • [System.Drawing.SystemIcons]::Information(情報)
  • [System.Drawing.SystemIcons]::Warning(警告)
  • [System.Drawing.SystemIcons]::Error(エラー)

✅ スケジュールで定期的に通知を送る

例えば、1時間ごとにリマインダーを送る ような使い方も可能です。
Windows のタスクスケジューラを使えば、自動実行できます。

🔹 タスクスケジューラで PowerShell スクリプトを定期実行

  1. タスクスケジューラを開くWin + Rtaskschd.msc
  2. 「タスクの作成」 をクリック
  3. 「全般」タブ
    • 名前: PowerShell通知
    • 実行時に最上位の特権を使用する(チェック)
  4. 「トリガー」タブ
    • 新規 → 「毎時」 → 60分ごとに設定
  5. 「操作」タブ
    • 新規 → プログラムの開始
    • プログラム/スクリプト: powershell.exe
    • 引数の追加: powershellコピーする編集する-ExecutionPolicy Bypass -File "C:\Scripts\balloon.ps1" -Title "リマインダー" -Message "1時間経過しました。"
  6. 「OK」を押してタスクを保存

これで、1時間ごとにバルーン通知が表示されるようになります。


✅ まとめ

BurntToast を使わずに PowerShell の標準機能だけで Windows のバルーン通知を表示する方法 を紹介しました。
New-Object System.Windows.Forms.NotifyIcon を活用することで、モジュール不要で簡単に実装できる ので、どんな Windows 環境でも動作します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED