none
Delecão de arquivos temporários em TS RRS feed

  • Pergunta

  • Senhores,

    Necessito realizar deleção schendulada das seguintes pastas:

    C:\GPS (Não apagando subpastas, somente arquivos)
    C:\Windows\Temp (Apagando tudo abaixo dela)
    C:\Serious (Não apagando subpastas, somente arquivos)

    Tambem necessito apagar os temporarios e os temporarios de internet de todos os profiles criados no windows.. como é um servidor de terminal, deve existir uns 100 criados..

    Alguem sabe de algo ?



    Rodrigo Fontes Tavares - Adm. de Redes UNIMEDSJC - Futuro MCP Exchange 2003
    segunda-feira, 17 de agosto de 2009 19:12

Respostas

  • Olá,


    Verifique o script abaixo:


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

    strPasta1 = "c:\GPS"
    strPasta2 = "c:\Serious"
    strPasta3 = "C:\Temp"


    ChecaPasta(strPasta1)
    ChecaPasta(strPasta2)
    ChecaPasta(strPasta3)


    '=======================================================

    Sub ChecaPasta (strDiretorio)

    Set colSubfolders = objWMIService.ExecQuery _
        ("Associators of {Win32_Directory.Name='" & strDiretorio & "'} " _
            & "Where AssocClass = Win32_Subdirectory " _
                & "ResultRole = PartComponent")

    For Each objSubfolder in colSubfolders
       verificaArquivo objsubFolder.Name
       checaPasta(objsubFolder.Name)
    Next

    verificaArquivo strDiretorio

    End Sub

    '=======================================================

    Sub verificaArquivo(strPasta)

    Set colFiles = objWMIService.ExecQuery _
        ("ASSOCIATORS OF {Win32_Directory.Name='" &strPasta& "'} Where " _
            & "ResultClass = CIM_DataFile")

    For Each objFile in ColFiles
       'DEPOIS QUE CONFERIR, PODE REMOVER A LINHA ABAIXO -> É SOMENTE O ALERTA NA TELA PARA TESTAR O SCRIPT
       wscript.echo "ira deletar o arquivo : " & objFIle.name
       objFIle.delete
    Next

    End Sub
    '=======================================================



    Até mais,

    Jesiel

    Obs.: Se útil, classifique



    terça-feira, 18 de agosto de 2009 14:08

Todas as Respostas

  • Olá,


    Verifique o script abaixo:


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

    strPasta1 = "c:\GPS"
    strPasta2 = "c:\Serious"
    strPasta3 = "C:\Temp"


    ChecaPasta(strPasta1)
    ChecaPasta(strPasta2)
    ChecaPasta(strPasta3)


    '=======================================================

    Sub ChecaPasta (strDiretorio)

    Set colSubfolders = objWMIService.ExecQuery _
        ("Associators of {Win32_Directory.Name='" & strDiretorio & "'} " _
            & "Where AssocClass = Win32_Subdirectory " _
                & "ResultRole = PartComponent")

    For Each objSubfolder in colSubfolders
       verificaArquivo objsubFolder.Name
       checaPasta(objsubFolder.Name)
    Next

    verificaArquivo strDiretorio

    End Sub

    '=======================================================

    Sub verificaArquivo(strPasta)

    Set colFiles = objWMIService.ExecQuery _
        ("ASSOCIATORS OF {Win32_Directory.Name='" &strPasta& "'} Where " _
            & "ResultClass = CIM_DataFile")

    For Each objFile in ColFiles
       'DEPOIS QUE CONFERIR, PODE REMOVER A LINHA ABAIXO -> É SOMENTE O ALERTA NA TELA PARA TESTAR O SCRIPT
       wscript.echo "ira deletar o arquivo : " & objFIle.name
       objFIle.delete
    Next

    End Sub
    '=======================================================



    Até mais,

    Jesiel

    Obs.: Se útil, classifique



    terça-feira, 18 de agosto de 2009 14:08
  • Olá,

    O script atendeu sua necessidade???



    quarta-feira, 19 de agosto de 2009 14:47
  • Jesiel,

    Atendeu sim, podemos tentar melhorar ele ?

    Percebi que que quando não existe a pasta citada, ele da erro e para o vbs, ele poderia ignorar e seguir em frente ?

    Há tambem como fazer um for dentro da pasta "C:\Documents and Settings", que para cada pasta localizada, ele usa-se o nome desta pasta e apagasse a subpasta Configurações locais\Temporary Internet Files ?

    Intendeu  ?? Tipo apagar todos os temporary internet files de todos os logins existentes naquele servidor ...

    Desculpe abusar, mais será de gradissima valia !
    Rodrigo Fontes Tavares - Adm. de Redes UNIMEDSJC - Futuro MCP Exchange 2003
    quinta-feira, 20 de agosto de 2009 15:27
  • Post ignorado ?
    Rodrigo Fontes Tavares - Adm. de Redes UNIMEDSJC - Futuro MCP Exchange 2003
    quarta-feira, 23 de setembro de 2009 20:55
  • Olá,

    Desculpe, não tinha visto suas dúvidas,

    Então... A primeira dúvida (sobre o erro) coloque no inicio do código:

    on error resume next

    Acredito que irá resolver quando não existir a pasta.

    Quanto aos temporários da internet, verifique o script abaixo:

    on error resume next
    Const TEMPORARY_INTERNET_FILES = &H20&
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(TEMPORARY_INTERNET_FILES)
    objFSO.DeleteFile(objFolder.Self.Path & "\*.*")

    sPath = objFSO.GetFolder(objFolder.Self.path) & "\Content.IE5\"
    Set objFolders = objFSO.GetFolder(sPath)
    For Each objFName In objFolders.SubFolders
    objFSO.DeleteFolder(sPath & objFName.Name)
    Next


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    quinta-feira, 24 de setembro de 2009 11:20