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

STORAGEの容量チェックのScript例

hh25_check_service.ps1

  • hh25_xxxなので、heartbeat.ps1が直接起動する
  • 毎時25分になると実行する。hh30にすると毎時30分になるし、hh70 にすると実行されることはなくなる。
  • 毎時15分、毎時45分に同じタスクを追加したければ、このScriptファイルをCOPYしてファイル名を hh15_check_service.ps1 、hh45_check_service.ps1 に変更すればいい
#$scriptName = $myInvocation.MyCommand.name
#************************************************************************************
# 定数定義
#************************************************************************************
Set-Variable -Name 'trigCommand' -Value <IFTTTのEventName>
#************************************************************************************
# メイン処理
#************************************************************************************
.\hh99_check_service.ps1 "EpgTimer Service" PC_A

hh99_checkdrive.ps1

  • hhxx_xxxなので、heartbeat.ps1が直接起動することはない
  • 上から呼ばれるScript。実行コードの詳細はここに書く
  • trigCommand は呼び出し側で設定されることを考慮している。そうでないと上書いてしまうので。
  • この例では、さらに、 hh99_IFTTT_trig.ps1 というScriptを呼び出してIFTTTに発火イベントを送付しており、IFTTTが発火イベントを受けるとLINE通知に通知するような仕掛けにしている。
#************************************************************************************
# 定数定義
#************************************************************************************
$NUM_OF_CHARS_FOR_KB = 3
$NUM_OF_CHARS_FOR_MB = 6
$NUM_OF_CHARS_FOR_GB = 9
$NUM_OF_CHARS_FOR_TB = 12
if ((Get-Variable  -ErrorAction silentlyContinue -Name 'trigCommand' | Measure-Object).count -eq 0){
Set-Variable -Name 'trigCommand' -Value <IFTTTのEventName>
}
#************************************************************************************
# 関数
#************************************************************************************
Function getNumOfGB([string]$iStr){
    $str = $iStr.Replace(",","")
    If ($str.length -gt $NUM_OF_CHARS_FOR_GB){
        $str.Substring(0,$str.length - $NUM_OF_CHARS_FOR_GB)
    }
}
#************************************************************************************
#メイン処理
#************************************************************************************
#コマンドライン引数(パラメータ)の取得
If ($Args.Count -lt 2){
    echo "Error:引数が足りません"
    exit
}

#コマンドライン引数(パラメータ)の検証
$argCompName = $args[0]
$argULimitGB = $args[1]
$str = (Get-PSDrive D).Free
$str = (getNumOfGB $str)

$now = Get-Date -Format G 

If ([int]$str -lt [int]$argULimitGB) {
    $str2 = $str + "GB[" + $argCompName + "] at " + $now + "※IFTTTへMAKERイベント発火"
}else{
    $str2 = $str + "GB[" + $argCompName + "] at " + $now + "※IFTTTへMAKERイベント不要"
    exit
}
.\hh99_IFTTT_trig.ps1 $trigCommand "ディスク逼迫 at $argCompName(残量 $str)"

関連する記事・ページ

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