none
Script disco cheio RRS feed

  • Pergunta

  • Pessoal

    eu estou precisando de um script em vbs que avise aos usuários da minha rede, que o disco esta cheio será que alguem pode me ajudar.

     

    Sds

    Luiz Gustavo

     

    quinta-feira, 25 de setembro de 2008 20:15

Respostas

  • Cara...ve se isso ajuda vc...

     

    ' List Available Disk Space

    ' Windows Server 2003 : Yes
    ' Windows XP : Yes
    ' Windows 2000 : Yes
    ' Windows NT 4.0 : Yes
    ' Windows 98 : Yes

    Const HARD_DISK = 3

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

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

    For Each objDisk in colDisks
        Wscript.Echo "DeviceID: "& vbTab &  objDisk.DeviceID      
        Wscript.Echo "Free Disk Space: "& vbTab & objDisk.FreeSpace
    Next

    ----------------------------------------------------------------------------------------------------------------------------------------

     

    Option Explicit
    
    const strComputer = "."
    const strReport = "c:\diskspace.txt"
    
    
    Dim objWMIService, objItem, colItems
    Dim strDriveType, strDiskSize, txt
    
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk WHERE DriveType=3")
    txt = "Drive" & vbtab & "Size" & vbtab & "Used" & vbtab & "Free" & vbtab & "Free(%)" & vbcrlf
    For Each objItem in colItems
    	
    	DIM pctFreeSpace,strFreeSpace,strusedSpace
    	
    	pctFreeSpace = INT((objItem.FreeSpace / objItem.Size) * 1000)/10
    	strDiskSize = Int(objItem.Size /1073741824) & "Gb"
    	strFreeSpace = Int(objItem.FreeSpace /1073741824) & "Gb"
    	strUsedSpace = Int((objItem.Size-objItem.FreeSpace)/1073741824) & "Gb"
    	txt = txt & objItem.Name & vbtab & strDiskSize & vbtab & strUsedSpace & vbTab & strFreeSpace & vbtab & pctFreeSpace & vbcrlf
    
    Next
    
    writeTextFile txt, strReport
    wscript.echo "Report written to " & strReport & vbcrlf & vbcrlf & txt
    
    ' Procedure to write output to a text file
    private sub writeTextFile(byval txt,byval strTextFilePath)
    	Dim objFSO,objTextFile
    	
    	set objFSO = createobject("Scripting.FileSystemObject")
    
    	set objTextFile = objFSO.CreateTextFile(strTextFilePath)
    
    	objTextFile.Write(txt)
    
    	objTextFile.Close
    	SET objTextFile = nothing
    end sub
    

    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    Abs

    Qualquer coisa posta ai..

     

     

    Se for util.. vote positivo..

    sábado, 27 de setembro de 2008 00:51

Todas as Respostas

  •  

    Cara ta precisando do post ainda??
    sexta-feira, 26 de setembro de 2008 02:18
  • Sim estou!!!!

     

    sexta-feira, 26 de setembro de 2008 11:31
  • Será q vc pode me ajudar? ainda nao tenho muito conhecimento de VB. estou implantando agora na empresa.

     

    sexta-feira, 26 de setembro de 2008 13:31
  •  

    Pessoal ninguem ajudou no meu post, porem vai uma dica ai muito boa um link de scripts prontos, pode ser util pra muitos adms como esta sendo pra mim, vou ver se consigo criar mue script por ele.

    http://www.wisesoft.co.uk/Scripts/

    Sds

    sexta-feira, 26 de setembro de 2008 16:46
  • Luiz..

    Vc quer avisar ao usuário da estação que o disco tá cheio ou avisar um adm de rede?

    o.0 não entendi..

    O proprio windows avisa ao usuário quando o disco tá cheio..

    o.0

    sexta-feira, 26 de setembro de 2008 18:40
    Moderador
  • Felipe

    Obrigado pela atenção

    e o seguinte eu quero avisar o usuário q o driver de rede dele esta cheio para ele esvaziar eu tenho um script aqui mais nao esta funcionando. veja vc mesmo as vezes vc sabe o q eu estou fazendo de errado.

     

    'Verifica espaço disponível

     

     if HomeDir <> "" then

                Set espaco = fso.GetDrive(fso.GetDriveName("X:"))

                espaco = espaco.AvailableSpace/1024

                If espaco < 5000 Then

                  msgbox "Você tem somente " & espaco & " KB de espaço disponível no disco. Isto pode não ser suficiente para gravação de novos documentos. Antes de prosseguir, apague arquivos que não esteja utilizando para evitar problemas.", vbexclamation+vbokonly, "ATENÇÃO!!! DISCO CHEIO"

                End If

     end if

    sexta-feira, 26 de setembro de 2008 18:56

  • Pra isso vc não precisa de script
    vc pode usar cota de disco e o windows mesmo avia o usuário que o disco está cheio..

    abs
    sexta-feira, 26 de setembro de 2008 19:32
    Moderador
  • Cara...ve se isso ajuda vc...

     

    ' List Available Disk Space

    ' Windows Server 2003 : Yes
    ' Windows XP : Yes
    ' Windows 2000 : Yes
    ' Windows NT 4.0 : Yes
    ' Windows 98 : Yes

    Const HARD_DISK = 3

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

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

    For Each objDisk in colDisks
        Wscript.Echo "DeviceID: "& vbTab &  objDisk.DeviceID      
        Wscript.Echo "Free Disk Space: "& vbTab & objDisk.FreeSpace
    Next

    ----------------------------------------------------------------------------------------------------------------------------------------

     

    Option Explicit
    
    const strComputer = "."
    const strReport = "c:\diskspace.txt"
    
    
    Dim objWMIService, objItem, colItems
    Dim strDriveType, strDiskSize, txt
    
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk WHERE DriveType=3")
    txt = "Drive" & vbtab & "Size" & vbtab & "Used" & vbtab & "Free" & vbtab & "Free(%)" & vbcrlf
    For Each objItem in colItems
    	
    	DIM pctFreeSpace,strFreeSpace,strusedSpace
    	
    	pctFreeSpace = INT((objItem.FreeSpace / objItem.Size) * 1000)/10
    	strDiskSize = Int(objItem.Size /1073741824) & "Gb"
    	strFreeSpace = Int(objItem.FreeSpace /1073741824) & "Gb"
    	strUsedSpace = Int((objItem.Size-objItem.FreeSpace)/1073741824) & "Gb"
    	txt = txt & objItem.Name & vbtab & strDiskSize & vbtab & strUsedSpace & vbTab & strFreeSpace & vbtab & pctFreeSpace & vbcrlf
    
    Next
    
    writeTextFile txt, strReport
    wscript.echo "Report written to " & strReport & vbcrlf & vbcrlf & txt
    
    ' Procedure to write output to a text file
    private sub writeTextFile(byval txt,byval strTextFilePath)
    	Dim objFSO,objTextFile
    	
    	set objFSO = createobject("Scripting.FileSystemObject")
    
    	set objTextFile = objFSO.CreateTextFile(strTextFilePath)
    
    	objTextFile.Write(txt)
    
    	objTextFile.Close
    	SET objTextFile = nothing
    end sub
    

    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    Abs

    Qualquer coisa posta ai..

     

     

    Se for util.. vote positivo..

    sábado, 27 de setembro de 2008 00:51
  •  

    Robson obrigado

    eu vou testar e te falo

    segunda-feira, 29 de setembro de 2008 16:51