Usuário com melhor resposta
Delecão de arquivos temporários em TS

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
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
- Marcado como Resposta Rodrigo Fontes Tavares quarta-feira, 23 de setembro de 2009 20:55
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
- Marcado como Resposta Rodrigo Fontes Tavares quarta-feira, 23 de setembro de 2009 20:55
-
-
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 -
-
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