Option Explicit
Dim WshShell
Dim objFSO
Dim WshNetwork
Dim intAnswer
Dim sUserProfile
Dim i
Dim oDrives
Dim oFile
Dim oFiles
Dim oFolder
Dim sPSTPath
Dim sPSTFile
Dim sZipStr
Dim sFilesFound
Dim sQuerysizeloops
sFilesFound=0
sQuerysizeloops=0
Set WshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshNetwork = CreateObject("WScript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
sUserProfile = WshShell.ExpandEnvironmentStrings("%UserProfile%")
sPSTPath = sUserProfile & "\Local Settings\Application Data\Microsoft\Outlook\"
Set oFolder = objFSO.GetFolder(sPSTPath)
Set oFiles = oFolder.Files
intAnswer = Msgbox("Deseja fazer o backup do seu e-mail ?",vbYesNo,"Backup")
If intAnswer = vbYes Then
Set intAnswer=Nothing
intAnswer = Msgbox("Se seu Outlook estiver aberto, Feche-o AGORA ou ele será fechado. Deseja Prosseguir? ",vbYesNo,"Fechamento do Outlook")
If intAnswer = vbYes Then
WshShell.Run "taskkill /F /im Outlook.exe"
If not objFSO.FolderExists("J:\"& WshNetwork.UserName)then
objFSO.CreateFolder("J:\"& WshNetwork.UserName)
End If
For Each oFile in oFiles
'On Error Resume Next
If oFile.Type = "Office Data File" Then
sFilesFound = sFilesFound + 1
sZipStr = "J:\Filzip\Filzip.exe -a -f J:\"&WshNetwork.UserName&"\"&WshNetwork.UserName&"_"&Year(Date())&"_"&Month(Date())&"_"&Day(Date())&".zip " & Chr(34) & sPSTPath & oFile.Name & Chr(34)
'### Descomente a linha abaixo para exibir um warning ao usuário caso o PST dele for maior que 3Gb
'Querysize (oFile.Name)
RegFilzip ()
WshShell.Run sZipStr,,True
End If
Next
Else
Fim
End If
Else
Fim
End If
Set oFolder = objFSO.GetFolder ("J:\"&WshNetwork.UserName)
Set oFiles = oFolder.Files
For Each oFile In oFiles
If Not oFile.Name = (WshNetwork.UserName&"_"&Year(Date())&"_"&Month(Date())&"_"&Day(Date())&".zip") Then
oFile.Delete
End If
Next
Sub RegFilzip ()
'#### Rotina para registrar as chaves de registro do Filzip e não exibir nada ao usuário.
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.ace","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.arc","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.arj","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.bh","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.cab","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.fea","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.fzs","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.gz","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.jar","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.lha","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.pak","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.rar","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.tar","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.uue","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.xxe","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.z","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\.zip","1","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\Associate","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\FileAssociation\Dialog","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\Settings\Language-Ini","J:\Filzip\languages\PortugueseBR.ini","REG_SZ"
WshShell.RegWrite "HKCU\Software\Filzip\Config\Settings\optOverwrite","1","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\Settings\optUpdate","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\Settings\optZipDirs","0","REG_DWORD"
WshShell.RegWrite "HKCU\Software\Filzip\Config\Settings\RegDialog","0","REG_DWORD"
End Sub
Sub Querysize (sPSTFile)
For Each oFile in oFiles
If oFile.Name= sPSTFile Then
If oFile.Size > 3221225472 Then
If sQuerysizeloops = 0 Then
sQuerysizeloops = sQuerysizeloops+1
MsgBox "Seu PST é maior que 3GB, é necessário fazer uma limpeza para evitar a perda de arquivos.",48,"Tamanho Crítico"
End If
End If
End If
Next
End Sub
Sub Fim
Msgbox "Backup Cancelado",,"Sair"
Set WshShell=nothing
Set objFSO=nothing
Set WshNetwork=nothing
Set intAnswer=nothing
Set sUserProfile=nothing
Set i=nothing
Set oDrives=Nothing
Set oFile=Nothing
Set oFiles=Nothing
Set oFolder=Nothing
Set sPSTPath=Nothing
Set sPSTFile=Nothing
Set sZipStr=Nothing
Set sFilesFound=Nothing
Wscript.quit
End Sub
'WScript.Echo "Foram backupeados " & sFilesFound & " Arquivos"
WScript.quit