VBScriptが非推奨となったので、コマンドプロンプトからpowershellを使って
ディスク容量を出力する方法をメモする。
powershell "Get-WmiObject Win32_LogicalDisk -ComputerName %computername% -Filter DriveType=3 | Select-Object DeviceID,@{'Name'='全容量 (GB)'; 'Expression'={[string]::Format('{0:N1}',[math]::truncate($_.size / 1GB *10)/10)}},@{'Name'='空き容量 (GB)'; 'Expression'={[string]::Format('{0:N1}',[math]::truncate($_.freespace / 1GB*10 )/10)}},@{'Name'='残り (%)'; 'Expression'={[string]::Format('{0:N1}',[math]::truncate($_.freespace /$_.size *1000)/10)}}"
出力サンプル
DeviceID 全容量 (GB) 空き容量 (GB) 残り (%)
-------- ----------- ------------- ---------
C: 930.7 537.5 57.7
D: 1,862.9 607.0 32.5
たとえば、smailを使って下記のようにとばす
rem DATDIR にディスク容量を出力する
SET DATDIR=D:\log
powershell "Get-WmiObject Win32_LogicalDisk -ComputerName %computername% -Filter DriveType=3 | Select-Object DeviceID,@{'Name'='全容量 (GB)'; 'Expression'={[string]::Format('{0:N1}',[math]::truncate($_.size / 1GB *10)/10)}},@{'Name'='空き容量 (GB)'; 'Expression'={[string]::Format('{0:N1}',[math]::truncate($_.freespace / 1GB*10 )/10)}},@{'Name'='残り (%)'; 'Expression'={[string]::Format('{0:N1}',[math]::truncate($_.freespace /$_.size *1000)/10)}}" >%DATDIR%\disk.txt
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET LF=\n
SET /P str=<%DATDIR%\disk.txt
FOR /F "skip=1 delims=" %%a in (%DATDIR%\disk.txt) do (
SET str=!str!!LF!%%a
)
ECHO !str!
SET FFROM=%COMPUTERNAME%
SET ADDR=hoge@hoge.com
rem d:\smail にsmailを配置して
D:\smail\smail -h(smtpサーバ) -fuser -f"%FFROM%<%FFROM%@hoge.com>" -s"%FFROM% DISK Usage " -T"\n %str% \n" %ADDR% -t
パフォーマンスモニタとタスクスケジューラを組み合わせる。

「新しいトリガー」は1回で設定


パフォーマンスモニター











