Isso aqui vai fazer você:
ID do evento 2013 (disco Está em ou perto de capacidade) não sendo logado
Para resumir, verifique se você está registrando alertas de espaço em disco no seu log de eventos:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters]
"DiskSpaceThreshold"=dword:0000000a
"LowDiskSpaceMinimum"=dword:00000000
(Você deve adicionar os dois, não apenas um ou outro.)
Depois, você deve anexar uma tarefa ao evento. E aqui estão alguns XML que você pode importar para o agendador de tarefas que anexará a dita tarefa ao evento mencionado:
<?xml version="1.0" encoding="UTF-8"?>
<Task xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task" version="1.3">
<RegistrationInfo>
<Date>2013-02-05T14:37:17.165247</Date>
<Author>[YourDomain]\[YourUserName]</Author>
<Description>Send an emailed warning when a low disk space event is recorded.</Description>
</RegistrationInfo>
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="System"&gt;&lt;Select Path="System"&gt;*[System[Provider[@Name='srv'] and EventID=2013]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>
</EventTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-20</UserId>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<SendEmail>
<Server>smtpServer.YourCompany.co.uk</Server>
<Subject>Low disk space warning on server: [ServerName]</Subject>
<To>[email protected]</To>
<From>[email protected]</From>
<Body>Disk space is running low on server: [ServerName] - please investigate.</Body>
<HeaderFields />
<Attachments />
</SendEmail>
</Actions>
</Task>
Você precisa editar o servidor SMTP e outras variáveis para atender às suas necessidades. Isto irá disparar um email para você sempre que o evento (pouco espaço em disco) ocorrer no seu servidor.
É interessante notar que o Server 2008, 2012, etc., deve automaticamente padronizar a geração desse alerta em 10%, então provavelmente não há necessidade de modificar o registro a menos que você queira algo personalizado em vez de 10%.
Alternativamente, você pode fazer isso com o Powershell.
$Threshold = 10 #Percent
Foreach($Disk In Get-CimInstance Win32_LogicalDisk | Where DriveType -EQ 3)
{
$PercentFree = [Math]::Round(($Disk.FreeSpace / $Disk.Size) * 100, 1)
If ($PercentFree -LT $Threshold)
{
Send-MailMessage -From $From -To $To -Subject "Low Disk Space on $Servername" -Body "Low Disk Space on $Servername" -SmtpServer $SMTPServer
}
}
Programe isso e execute-o em um intervalo. (Eu apenas zombei disso de cima da minha cabeça, mas você entendeu a ideia.)