Remove PST from Outlook Profile by VBS Script

Hallo zusammen,

Vor einiger Zeit habe ich mal ein VBS Script geschrieben, welches die PST Files im Outlook Profil erkennt und entfernen kann. Dieses Script kann beispielsweise ins Logonscript eingebaut werden.

Das entfernen von PST's funktioniert aber nur bei der ersten PST - sobald mehrere PST Dateien vorhanden sind, wird die schlaufe beim entfernen irgendwie verlassen - habe mich da aber nicht weiter darum gekümmert. Bin aber für Feedback dazu dankbar.

Ich habe also ein Outlook Profil mit zwei PST Dateien angelegt

Und so sieht das Script dann aus.

Diese Informationen können natürlich auch verwendet werden um ein Inventar der PST Dateien im Netzwerk anzulegen indem diese Infos im Loginscript erhoben werden und in ein File geschrieben werden.

'###############################################################################
'# Remove PST from Outlook
'# Uses Outlook to remove PST Files from Profile
'# 29.10.2011 Andres Bohren / www.icewolf.ch
'###############################################################################

Option Explicit

ListPST
ShowIdentity

Dim oWshShell
Set oWshShell = WScript.CreateObject("WScript.Shell")
'oWshShell.Popup "Removed PST Files from your Profile", 2, "RemovePST", 64

Public Sub ListPST()
    'On Error resume next
    Dim objOutlook 'As Outlook.Application
    Dim Session 'As Outlook.NameSpace
    Dim Store 'As Outlook.Store
    Dim Stores 'As Outlook.Stores
    Dim objFolder 'As Outlook.Folder
    Dim Report 'As String
    Dim strPrompt 'As String
   
    Set objOutlook = CreateObject("Outlook.Application")
    Set Session = objOutlook.Session
    'Set Session2 = objOutlook.Session      
    Set Stores = Session.Stores
   
    For Each Store In Stores
   
     If Store.ExchangeStoreType = 3 then
      Report = ""
        Report = Report & Store.DisplayName & vbCrLf
        Report = Report & "Location : " & Store.FilePath & vbCrLf
        Report = Report & "Is Cached Exchange : " & Store.IsCachedExchange & vbCrLf
        Report = Report & "Is Data File Store : " & Store.IsDataFileStore & vbCrLf
        Report = Report & "Is Instant Search Enabled : " & Store.IsInstantSearchEnabled & vbCrLf
        Report = Report & "Is Open : " & Store.IsOpen & vbCrLf
        Report = Report & "Class : " & Store.Class & vbCrLf
        Report = Report & "Exchange Store Type : " & Store.ExchangeStoreType & vbCrLf
        Report = Report & "Store ID : " & Store.StoreID & vbCrLf & vbCrLf
        msgbox "Report: " & Report
       
        set objfolder = nothing
        Set objFolder = store.GetRootFolder
               
    strPrompt = "Remove PST file? " & Store.DisplayName & vbcrlf & Store.FilePath & vbcrlf & "Folder: " & objFolder
      
      If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then
         Session.RemoveStore objFolder
      End If
       
     End If
   
    Next

End Sub

Sub ShowIdentity
 Dim WshNetwork
 Set WshNetwork = WScript.CreateObject("WScript.Network")
 Msgbox "Hostname: " & WshNetwork.ComputerName & " User: " & WshNetwork.UserDomain  & "\" & WshNetwork.UserName
End sub

Das VBS File kann auch heruntergeladen werden.

Grüsse
Andres Bohren