我正在尝试在 Windows Server 2003 中配置磁盘空间不足警报,我已经按照此步骤操作了微软教程。我尝试执行我创建的 bat 文件,该文件位于我正在使用的用户的主文件夹中。
我设置为当磁盘可用空间低于6 GB时触发,“采样数据间隔”是默认值(5秒)。
问题是警报没有被触发。
还有一件事,设置警报的用户不是根用户,但它具有管理权限。
提前致谢
答案1
尝试以下脚本,它是不言自明的。此脚本将向[电子邮件保护]如果磁盘空间小于1GB,您需要修改电子邮件账户详细信息并将其安排为任务。
计算服务器上的可用磁盘空间
常量 HARD_DISK = 3
strComputer = "."
设置 objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
设置 colDisks = objWMIService.ExecQuery _
(“从 Win32_LogicalDisk 中选择 *,其中 DriveType = “&HARD_DISK&””)
设置 objComputer = CreateObject("Shell.LocalMachine")
我 = 0
intCharacters = 5
标志 = 0
对于 colDisks 中的每个 objDisk
可用空间 = objDisk.FreeSpace
驱动器 = objDisk.DeviceID
总空间 = objDisk.Size
总空间 = 总空间/1073741824
总空间 = 左 (总空间, intCharacters)
总空间 = 总空间 & " GB"
自由空间 = 自由空间/1073741824
自由空间 = 左 (自由空间, intCharacters)
如果 freespace < 1 那么
标志 = 1
万一
自由空间 = 自由空间 & " GB"
display = display + Cstr(objDisk.DeviceID) & " " + freespace + display1 &" "+ Cstr(objDisk.DeviceID) & " " + totalspace + vbNewLine + vbNewLine
computer = "服务器:" & objComputer.MachineName + vbNewLine + vbNewLine + "每个驱动器上的可用空间:" + vbNewLine + vbNewLine
head = "可用空间总空间" + vbNewLine + vbNewLine
下一个
如果标志 = 1,则
设置 objEmail = CreateObject("CDO.Message")
ObjEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'Send the message using the network (SMTP over the network).
ObjEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="SMTP SERVER"
ObjEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
ObjEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False 'Use SSL for the connection (True or False)
ObjEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
' ObjEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 '基本(明文)身份验证
' ObjEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername“)=”[电子邮件保护]“
' ObjEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword")="电子邮件密码" ObjEmail.Configuration.Fields.Update
objEmail.From = "[email protected]"
objEmail.To = "[email protected]"
objEmail.Subject = "YOUR SUBJECT"
objEmail.Textbody = head + display
objEmail.Send
Set ObjEmail = Nothing