sexta-feira, 3 de setembro de 2010

The Scripting Fiad - Apagando Temporários do Outlook e Temporary Internet Files

Olá Rapaziada! Atendendo aos milhões de pedidos (...) dos fãs do meu super hiper blog, vai aqui um script que apaga os temporários dos arquivos .PST do Outlook e também todos os Temporary Internet Files.

No meu caso tive que desenvolver este script pois como eu uso perfil móvel, alguns perfis estavam com 5 ou até 8 Giga. Quando fui ver tinha uns 10 arquivos .TMP com o tamanho dao arquivo de dados do Outlook. Não sei porque ele fez isso, mas tudo indica que é quando dava algum problema, ele passava o Reparador de pasta do outlook e criava esses temporários.

Coloquei tanto na inicialização como no encerramento do Windows, e nunca mais tive esse problema.

Abaixo, o script

'Script para apagar arquivos com extensão .TMP do diretório Outlook - Computadores com Windows XP
'Editado em 03 Setembro 2010 - Adicionado apagar todos os Arquivos temporários da internet
'Desenvolvido por Felipe Gustavo Fiad

On Error Resume Next

Dim sDocsAndSettings
Dim strComputer
Dim oFolder
Dim fso
Dim oFolder1
Dim oFolder2
Dim oFolder3
Dim oSubFolder1
Dim oSubFolder2
Dim oSubFolder3
Dim colSubfolders1
Dim colSubfolders2
Dim colSubfolders3
Dim oFile
Dim userProfile
Dim Windir

' Deleta todos os temporários do outlook para evitar demora ao ler perfil

Set DeleteTmp = CreateObject("Scripting.FileSystemObject")

Set objUsuario = CreateObject("Wscript.Network")
Usuario = objUsuario.Username


DeleteTmp.DeleteFile("C:\Documents and Settings\" & Usuario & "\Outlook\*.tmp")

DeleteTmp.DeleteFile("\\srvadm\profiles$\" & Usuario & "\Outlook\*.tmp")


' Deleta todos os arquivos temporários da internet

strComputer = "."
Set fso = createobject("Scripting.FileSystemObject")

'USER PROFILES
sDocsAndSettings = "C:\Documents and Settings\" ' Probably there is an environment variable or other variable

Set colFolders = fso.GetFolder(sDocsAndSettings) 'Collection of all profiles

For Each oFolder In colFolders.SubFolders
Select Case LCase(oFolder.Name)
Case "admin", "administrator", "newuser", "all users", "default user.original", "localservice", "networkservice"
'DO NOTHING
Case Else
'Set up environment
Set WSHShell = CreateObject("WScript.Shell")
Set fso = createobject("Scripting.FileSystemObject")
userProfile = WSHShell.ExpandEnvironmentStrings("%userprofile%")
Windir = WSHShell.ExpandEnvironmentStrings("%windir%")

'start deleting files
Set oFolder1 = fso.GetFolder(userProfile & "\Local Settings\Temp\")
For Each oFile In oFolder1.files
oFile.Delete True
Next

'Delete folders and subfolders
Set colSubfolders1 = oFolder1.Subfolders
On Error Resume Next
For Each oSubfolder in colSubfolders1
fso.DeleteFolder(oSubFolder), True
Next
Set oFolder2 = fso.GetFolder(userProfile & "\Local Settings\Temporary Internet Files\")
For Each oFile In oFolder2.files
oFile.Delete True
Next
Set colSubfolders2 = oFolder2.SubFolders
For Each oSubfolder in colSubfolders2
fso.DeleteFolder(oSubFolder)
Next
Set oFolder3 = fso.GetFolder(Windir & "\Temp\")
For Each oFile In oFolder3.files
oFile.Delete True
Next
Set colSubfolders3 = oFolder1.Subfolders
For Each oSubfolder in colSubfolders3
fso.DeleteFolder(oSubFolder)
Next

End Select
Next

'Clear memory
Set fso = Nothing
Set oFolder1 = Nothing
Set oFolder2 = Nothing
Set oFolder3 = Nothing
Set oSubFolder1 = Nothing
Set oSubFolder2 = Nothing
Set oSubFolder3 = Nothing
Set colSubfolders1 = Nothing
Set colSubfolders2 = Nothing
Set colSubfolders3 = Nothing
Set oFile = Nothing
Set userProfile = Nothing
Set Windir = Nothing

WScript.Quit

Tá Prontinho! É só recortar e colar. Apenas atente ao perfil do Outlook, pode ser que em sua empresa ele esteja em outra pasta. Espero ter ajudado!!

Nenhum comentário:

Postar um comentário