none
Espaço em disco RRS feed

  • Pergunta

  • Boa tarde,

    Caros amigos, gastaria de saber se algúm de vocês tem algum script que monitore espaço em disco, exemplo, quero saber quando meu disco está cheio para que eu pssa realizar um procedimento de expurgo, tipo meu hd é de 150GB quero saber quando ele atingir 145Gb de ocupação como exemplo e me informe via e-mail que este limite foi atingido.

    Agradeço a todos
    terça-feira, 15 de setembro de 2009 16:10

Respostas

  • Olá,

    Verifique o script abaixo:


    Dim strNome

    'CONSTANTES NAO ALTERAR
    Const HARD_DISK = 3
    strComputer = "."

    'COLOQUE A PORCENTAGEM LIMITE (MENOR QUE ISSO IRÁ DISPARAR O EMAIL)
    nLimite = 30

    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")

    For Each objItem In colItems
      strNome =  objItem.Name
    Next

    Set colDisks = objWMIService.ExecQuery _
        ("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")

    For Each objDisk in colDisks

        if (objDisk.FreeSpace * 100) /objDisk.Size < nLimite Then
       
            Envia_Alerta (objDisk.FreeSpace * 100) /objDisk.Size
        End if
    Next




    Sub Envia_Alerta(nEspaco)

     Set objEmail = CreateObject("CDO.Message")

    'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
     objEmail.From = "servidor@contoso.msft"
     objEmail.To = "jesiel@nwtraders.msft"

     objEmail.Subject = "ALERTA DE UTILIZAÇAO DE DISCO COMPUTADOR " & strNome
     objEmail.TextBody = "Computador: " & strNome & " Disco: " & objDisk.DeviceID & "Espaço Disponivel: " & nEspaco & " %"

     objEmail.Configuration.Fields.Item _
          ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
     objEmail.Configuration.Fields.Item _
         ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1" '<-informe seu servidor smtp

     objEmail.Configuration.Fields.Item _
         ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
     objEmail.Configuration.Fields.Update
     objEmail.Send
    end sub


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta mauroserggio terça-feira, 15 de setembro de 2009 17:16
    terça-feira, 15 de setembro de 2009 16:59

Todas as Respostas

  • Olá,

    Verifique o script abaixo:


    Dim strNome

    'CONSTANTES NAO ALTERAR
    Const HARD_DISK = 3
    strComputer = "."

    'COLOQUE A PORCENTAGEM LIMITE (MENOR QUE ISSO IRÁ DISPARAR O EMAIL)
    nLimite = 30

    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")

    For Each objItem In colItems
      strNome =  objItem.Name
    Next

    Set colDisks = objWMIService.ExecQuery _
        ("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")

    For Each objDisk in colDisks

        if (objDisk.FreeSpace * 100) /objDisk.Size < nLimite Then
       
            Envia_Alerta (objDisk.FreeSpace * 100) /objDisk.Size
        End if
    Next




    Sub Envia_Alerta(nEspaco)

     Set objEmail = CreateObject("CDO.Message")

    'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
     objEmail.From = "servidor@contoso.msft"
     objEmail.To = "jesiel@nwtraders.msft"

     objEmail.Subject = "ALERTA DE UTILIZAÇAO DE DISCO COMPUTADOR " & strNome
     objEmail.TextBody = "Computador: " & strNome & " Disco: " & objDisk.DeviceID & "Espaço Disponivel: " & nEspaco & " %"

     objEmail.Configuration.Fields.Item _
          ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
     objEmail.Configuration.Fields.Item _
         ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1" '<-informe seu servidor smtp

     objEmail.Configuration.Fields.Item _
         ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
     objEmail.Configuration.Fields.Update
     objEmail.Send
    end sub


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta mauroserggio terça-feira, 15 de setembro de 2009 17:16
    terça-feira, 15 de setembro de 2009 16:59
  • Obrigado serviu perfeitamente
    terça-feira, 15 de setembro de 2009 17:17