2

サーバーの空き容量を監視するスクリプトが必要です。空きメモリ容量が不足すると、特定のしきい値がアラート メールを送信します。

PS - 解決策は Power Shell + Windows Timer Job になると思います。ただし、Power Shell は初めてです。

4

2 に答える 2

3

WMI オブジェクトを処理する必要があります。

http://technet.microsoft.com/en-us/library/dd315295.aspx

スクリプトは不要かもしれません。Wk3 サーバーを使用している場合は、ボリュームでクォータ管理を有効にできます。W2k8 は、クォータ管理をボリューム フォルダにも拡張しました。

http://technet.microsoft.com/en-us/library/cc733029.aspx

于 2012-06-14T04:52:01.093 に答える
3

次のようなコマンドを使用して、空きディスク容量を取得できます。

([wmi]"\\$computer\root\cimv2:Win32_logicalDisk.DeviceID='$drive'").FreeSpace

また、以下の関数を使用してメールを送信できます。

function Send-EMail 
{ 
    param (
        [parameter(Mandatory = $false)][string] $EmailTo = "<Your destination email>",
        [parameter(Mandatory = $false)][string] $EmailFrom = "<The sending email address>",
        [parameter(Mandatory = $false)][string] $EmailSubject = "Disk space problem",
        [parameter(Mandatory = $false)][string] $SMTPServer = "<your smtp server>"
    )

    $MailMessage = New-Object System.Net.Mail.MailMessage  
    $MailMessage.From = ($EmailFrom)  
    $MailMessage.To.Add($EmailTo) 
    $MailMessage.Subject = $EmailSubject 
    $MailMessage.Body = $EmailBody 
    $MailMessage.IsBodyHTML = $true 

    $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 25)   
    $SMTPClient.Send($MailMessage) 
} 

これら 2 つの関数を、 Windows スケジューラでスケジュールできる PowerShell スクリプトに結合します。

于 2012-06-14T07:00:59.023 に答える