【PC自動化】FAXの確認漏れを防ぐ!PowerShellを使ったデス-クトップ通知で業務効率アップ

「複合機で受信したFAX、サーバーにPDFで届くけど、つい見るのを忘れてしまう…」

オフィスの日常業務で、こんなお悩みはありませんか?
先日、お客様からまさにこのようなご相談をいただきました。FAXの確認は重要な業務ですが、他の作業に追われていると、つい後回しになりがちです。

そこで今回は、この「ついうっかり」を防ぐために、簡単なPCの自動化設定で解決した事例をご紹介します。専門的な知識がなくても大丈夫ですので、ぜひ参考にしてみてください。

お客様の課題:FAXの見落としをなくしたい

今回ご相談いただいたお客様の環境では、複合機で受信したFAXが、自動的にサーバー内の共有フォルダへPDFファイルとして転送される仕組みにしていました。

非常に便利な仕組みですが、担当者がフォルダを能動的に確認しに行かない限り、新しいFAXが届いたことに気づけません。その結果、急ぎの要件を見落としてしまうリスクがありました。

解決策:PCが「未読FAXがありますよ!」とお知らせしてくれる仕組み作り

そこで私たちが提案したのが、**「PCが自動でFAXフォルダを監視し、新しいファイルがあればデスクトップに通知を表示する」**という仕組みです。

この仕組みは、Windowsに標準で搭載されている**「PowerShell(パワーシェル)」という機能と「タスクスケジューラ」**を組み合わせて実現しました。

難しいプログラミングは不要で、ほとんどコピー&ペーストで設定が可能です。

設定は2ステップだけ!

まず、PCに「何をするか」を指示するための簡単な命令文(スクリプト)を作成します。
以下のコードをコピーして、メモ帳に貼り付けてください。


Add-Type -Assembly System.Windows.Forms

# --- ここから設定 ---
# FAXが保存されているフォルダのパスを指定します。
# 例:\\サーバー名\共有フォルダ名\fax\*.pdf
$dir = "\\192.168.0.200\Shared\fax\*.pdf"

# 通知OKボタンを押した後に開くフォルダのパスを指定します。
$dir2 = "\\192.168.0.200\Shared\fax\"
# --- ここまで設定 ---

if((Test-Path $dir) -eq "True"){
    # デスクトップに表示する通知ウィンドウの設定
    $form = New-Object System.Windows.Forms.Form
    $form.Text = "受信FAX通知"
    $form.Size = New-Object System.Drawing.Size(200, 150)
    $form.StartPosition = "CenterScreen"
    $form.TopMost = $true # 常に最前面に表示する

    # ラベル(メッセージ)の設定
    $label = New-Object System.Windows.Forms.Label
    $label.Location = New-Object System.Drawing.Point(10,30)
    $label.Size = New-Object System.Drawing.Size(250,20)
    $label.Text = "未読FAXがあります!"

    # OKボタンの設定
    $buttonOk = New-Object System.Windows.Forms.Button
    $buttonOk.Text = "OK"
    $buttonOk.Location = New-Object System.Drawing.Point(60, 60)
    $buttonOk.DialogResult = [System.Windows.Forms.DialogResult]::OK

    # 各パーツをウィンドウに追加
    $form.Controls.Add($label)
    $form.Controls.Add($buttonOk)

    # 通知ウィンドウを表示
    $form.ShowDialog()

    # OKボタンが押されたらFAXフォルダを開く
    Invoke-Item $dir2
}

【設定のポイント】

  • $dir と $dir2 の部分を、お使いの環境のフォルダパスに書き換えてください。
  • ファイルを保存する際は、「ファイルの種類」を「すべてのファイル」にして、ファイル名の末尾を「.ps1」(例:fax-check.ps1)として保存します。

次に、作成したスクリプトを定期的に(例えば5分おきに)自動で実行するように設定します。

  1. Windowsの検索窓で「タスクスケジューラ」と入力し、アプリを起動します。
  2. 右側の操作メニューから「タスクの作成」をクリックします。
  3. [全般]タブ:
    • 名前に「FAX受信通知」など分かりやすい名前を付けます。
    • 「ユーザーがログオンしているかどうかにかかわらず実行する」を選択すると、より確実に動作します。[1]
  4. [トリガー]タブ:
    • 「新規」をクリックし、「タスクの開始」を「ログオン時」に設定します。
    • 「繰り返し間隔」にチェックを入れ、「5分間」を選択し、「継続時間」を「無期限」にします。これでPC起動後、5分おきにチェックが走ります。
  5. [操作]タブ:
    • 「新規」をクリックします。
    • 「プログラム/スクリプト」の欄に powershell.exe と入力します。
    • 「引数の追加」の欄に -ExecutionPolicy Bypass -File "C:\保存先\fax-check.ps1" のように、先ほど保存したps1ファイルのフルパスを入力します。(" "で囲むのがポイントです)

【実行時のウィンドウを非表示にする工夫】
お客様のご要望で、スクリプト実行時に一瞬表示される黒いコマンドウィンドウを非表示にしたいとのことでした。
これにはいくつかの方法がありますが、今回はconhost.exeを利用する方法で対応しました。
より一般的な方法としては、タスクスケジューラの全般タブで「非表示にする」にチェックを入れたり、「ユーザーがログオンしているかどうかにかかわらず実行する」を選ぶことでも、画面にウィンドウが表示されるのを防ぐことができます。

導入後の効果:確認漏れがなくなり、お客様に大変喜んでいただけました!

この設定を導入した結果、FAXが届けばPCのデスクトップに通知が表示され、OKボタンを押すだけで直接フォルダが開くようになり、お客様のFAX確認漏れはゼロになりました。

「これで安心できる」と、大変喜んでいただけました。

まとめ

今回は、PowerShellとタスクスケジューラというWindowsの標準機能だけで、日常の「ちょっとした不便」を解決した事例をご紹介しました。
このように、身近なツールを少し工夫するだけで、日々の業務はもっとスムーズになります。

もしあなたのオフィスでも同様の課題があれば、ぜひ試してみてはいかがでしょうか。