オープンソースのシステム監視ソリューションであるPolyMonをご覧になることをお勧めします。これにより、任意の.NET言語でカスタムモニターを作成でき、カスタムPowerShellモニターを作成できます。
SQL Serverバックエンドにデータを保存し、グラフを提供します。あなたの目的のために、あなたはただディレクトリサイズとファイル数を取得するスクリプトを必要とするでしょう。何かのようなもの:
$size = 0
$count = 0
$path = '\\unc\path\to\directory\to\monitor'
get-childitem -path $path -recurse | Where-Object {$_ -is [System.IO.FileInfo]} | ForEach-Object {$size += $_.length; $count += 1}
スコットのコメントへの返信:もちろんです。whileループでラップできます
$ESCkey = 27
Write-Host "Press the ESC key to stop sniffing" -foregroundcolor "CYAN"
$Running=$true
While ($Running)
{
if ($host.ui.RawUi.KeyAvailable) {
$key = $host.ui.RawUI.ReadKey("NoEcho,IncludeKeyUp,IncludeKeyDown")
if ($key.VirtualKeyCode -eq $ESCkey) {
$Running=$False
}
#rest of function here
}
定期的に実行するようにスケジュールできるPowerShellモニターの場合はこれを行いませんが、スクリプトをバックグラウンドで実行する場合は、上記のように機能します。データベースアクセスコードを追加して、結果をデータベースに記録したり、ファイルに記録したりすることもできます。