PCをリモート管理する1手法

ここでは、DropboxサービスとWindowsタスクスケジューラを組みあせたPCのリモート管理方法について、紹介します。

ハードウエア

  • 自宅PC(Windows10デスクトップ)。リモート管理対象。ここでは物理名を「PC_A」とした
  • 実家PC(Windows10デスクトップ)。リモート管理対象。ここでは物理名を「PC_B」とした
  • スマホ(android)。リモート管理対象をモニタする

管理したいこと

自宅PC(Windows10)

  • HDDの状態。100GB/日の割合でHDD容量を消費するので、残量をチェックしたい。
  • サービスの状態。大きなWindowsUpdateにより、登録している(Windows標準でない)サービスがサービスから外されることがあり、そのモニタ。
  • tsファイルからMp4へのファイルフォーマット変換等10H以上かかるタスクのモニタ
  • その他、各種作業の自動化(バッチ化、スクリプト化)

実家PC(Windows10)

  • HDDの状態。100GB/日の割合でHDD容量を消費するので、残量をチェックしたい。
  • サービスの状態。大きなWindowsUpdateにより、登録している(Windows標準でない)サービスがサービスから外されることがあり、そのモニタ。
  • ssh接続の状態。VNC単体の接続にはセキュリティ上暗号化が必要だが、ssh接続の経路でVNC接続することにより、暗号化している。ネットが切れたりDHCPが切り替わるとsshが無効になることがあり、そのモニタ
  • tsファイルからMp4へのファイルフォーマット変換等10H以上かかるプロセスのモニタ
  • ネットワーク転送量の把握。自宅環境と違い、ネット転送量に上限があるため、モニタしたい
  • その他、各種作業の自動化(バッチ化、スクリプト化)

管理に必要なこと

Dropbox

自宅PC、実家PC、スマホに同一アカウントで設定する。動画や写真等大きなファイルは不要なので、無料コースで十分。履歴等増えていくファイルもあるが、それらは別途バックアップに移動すればいい。

Dropboxのフォルダに、自宅PC(例えばPC_A)や実家PC(例えばPC_B)の専用フォルダを作成しておいて、そこに管理用のファイルを置くようにする。スマホからは専用フォルダの配下にあるファイルを削除したり、内容をチェックしたりして、PCを管理する。

Windowsタスクスケジューラに登録した専用タスク

それぞれのPCに、Windowsタスクスケジューラに登録した専用タスクを用意する。専用タスクは毎分起動するような設定にする。

【コードサンプル】Windowsタスクへの登録例
【コードサンプル】heartbeat.ps1 – 心音確認 PowerShell Script

専用タスクから起動される管理スクリプト群

24時間タスク、1時間タスクとして実行できる管理スクリプト群を用意する。サンプルを使ってもいいし、カスタマイズしてもいい。

【コードサンプル】heartbeat.ps1 – 心音確認 PowerShell Script
【コードサンプル】1時間タスクのScript例
【コードサンプル】24時間タスクのScript例
【コードサンプル】hbJob.bat – Windows Bat Script

管理の仕方

自宅PCまたはスマホで管理する。スマホ自体は、ほぼ身に着けているものなので、管理対象ではなく、管理対象をモニタしたり、チェックした結果を取得して、次のアクションにつなげるが、Script編集等の作業にはむいていないので、そういう作業は自宅PCを使う。

①PCの再起動

外出先から自宅PCあるいは実家PCを再起動したい場合や、自宅PCから実家PCを再起動したい場合には、
(スマホや自宅PCの)Dropboxの専用フォルダにある再起動用ファイル(例えばreboot.lock)を削除する。
それぞれのPCにある専用タスクが再起動用ファイルの状態を検知して再起動Scriptを実行する。

【コードサンプル】heartbeat.ps1 – 心音確認 PowerShell Script
【コードサンプル】hbJob.bat – Windows Bat Script

②HDD残量チェック

毎日決まった時刻になると、それぞれのPCにある専用タスクがHDDの残量をチェックしてreportファイルにその状態を出力する。スマホにてreportファイルを開いて内容をチェックする。

【コードサンプル】1時間タスクのScript例

③サービス死活モニタ

毎日決まった時刻、または、毎時決まった時刻になると、それぞれのPCにある専用タスクが、サービスの状態をモニタしてhistoryファイルにその状態を出力する。サービスが停止している場合には、LINE通知やTwitterなどに通知する。

【コードサンプル】24時間タスクのScript例
【コードサンプル】IFTTT経由でLINE通知するScript例

④プロセス死活モニタ

毎日決まった時刻、または、毎時決まった時刻になると、それぞれのPCにある専用タスクが、プロセスの状態をモニタしてhistoryファイルにその状態を出力する。プロセスが停止している場合には、LINE通知やTwitterなどに通知する。
【コードサンプル】プロセスモニタのScript例
【コードサンプル】IFTTT経由でLINE通知するScript例

⑤ネット転送量モニタ

毎日決まった時刻、または、毎時決まった時刻になると、それぞれのPCにある専用タスクが、ネット転送量の状態をモニタしてhistoryファイルにその状態を出力する。
【コードサンプル】ネット転送量モニタ

関連する記事・ページ

自宅PCをスマホでリモート管理(タスク管理編)
PCをリモート管理する1手法
【コードサンプル】Windowsタスクへの登録例
【コードサンプル】heartbeat.ps1 – 心音確認 PowerShell Script
【コードサンプル】1時間タスクのScript例
【コードサンプル】24時間タスクのScript例
【コードサンプル】hbJob.bat – Windows Bat Script
【コードサンプル】プロセスモニタのScript例
【コードサンプル】IFTTT経由でLINE通知するScript例
【コードサンプル】ネット転送量モニタ