背景:我是一名开发人员,他不情愿地“照看”部署我的应用程序的机器.我的客户是一个完全独立的公司,他们付钱给我们为他们编写代码 – 我们没有共同的老板或类似的东西.他们有系统管理员,但是他们在不同的部门,当他们要求我认为系统管理员能够为他们做的事情时,他们没有得到他们要求的东西.实现这一目标不在我手中.然后,我最终被要求编写代码来执行我怀疑实际受过训练的人可以设置几行power
shell或在对话框上勾选的东西.这是安装了sql和IIS的
Windows Server 2003安装程序.
这导致今天的问题:如何知道驱动器正在变满. (数据库增长,导出的文件没有清理,那种事情.)理想情况下,一封电子邮件会说“驱动器E是在xyz的abc(84%).”那很容易吗?我确定不想编写服务来监控磁盘空间和发送电子邮件 – 有人必须先这样做.其中一个驱动器实际上是一个映射驱动器,代表另一台机器上的文件夹以获得它的价值.
虽然许多答案包括脚本(如果你走这条路线我也建议使用powershell),你也可以使用perfmon执行警报.见
HOW TO: Configure a Low Disk Space Alert by Using the Performance Logs and Alerts Feature in Windows Server 2003
请注意,您要采取的操作是执行powershell或vbscript向您发送电子邮件(或者更可取的是,在驱动器上执行一些基本的清理任务,然后发送一封电子邮件,说明问题是什么以及后期操作是什么号码是)
对于映射驱动器,您必须使用脚本.在WMI中使用的计数器是win32_mappedlogicaldisk. (Get-WmiObject win32_mappedlogicaldisk).freespace.例如:
$mythreshold = 10GB Get-WmiObject win32_mappedlogicaldisk | select-object deviceid,freespace | foreach { if ($_.freespace -lt $mythreshold){ $from = "myaddr@mycompany.com" $to = "myaddr@mycompany.com" $subject = "Low Disk Space!" $body = "Free Space Remaining: " + $_.FreeSpace + "Drive" + $_.deviceid $smtpServer = "smtp.mycompany.com" $smtp = new-object Net.Mail.SmtpClient($smtpServer) $smtp.Send($from,$to,$subject,$body) } }