blog.icewolf.ch

Let's talk about IT!
posts - 590, comments - 87, trackbacks - 0

Sunday, February 05, 2012

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

posted @ Sunday, February 05, 2012 3:42 PM | Feedback (0) | Filed Under [ Office ]

eseutil

Hallo zusammen,

Das eseutil.exe Kommandozeilentool dient zur Überprüfung und Reparatur von Exchange Datenbanken. Für Exchange 2010 habe ich auf Technet keine spezielle Seite gefunden. Für Exchange 2007 gibts eineEseutil Technet Dokumentation.

Das Eseutil liegt im Exchange Programmverzeichnis

cd C:\Program Files\Microsoft\Exchange Server\V14\Bin
eseutil.exe /?

Check

Das Tool kann nur angewendet werden wenn die Datenbank dismounted ist. Ich habe deshalb mal die MDB03 dismouted und führe das Esetuil mit dem Parameter /mh aus um die Kopfzeilen der DB anzuzeigen.

eseutil.exe /mh [Path to Database]

eseutil.exe /mh D:\MDB03\MDB03.edb

Da die Datenbank normal dismounted wurde ist die DB im "Clean Shutdown" state.

Wir können nun mit dem Parameter /ml die Logfiles Prüfen.

eseutil /ml D:\MDB03\[Logprefix]]

eseutil /ml D:\MDB03\E03

In diesem Fall ist alles okay - alle Logfiles wurden gefunden.

Löschen wir doch mal das Logfile E0300000087.log und führen den Logfile Check nochmals aus

eseutil /ml D:\MDB03\E03

Das Fehlende Logfile wird also erkennt.

Es ist auch möglich die Kopfdaten des .chk Files anzuzeigen

eseutil /mk [Path to chk File]
eseutil /mk D:\MDB03\E03.chk

Recovery

Nachdem das fehlende Logfile wieder zurückkopiert ist, mache ich mal ein recovery. Das sollte aber nur im Falle eines Fehlers angewendet werden und nicht "nur so aus spass".

Eseutil /r <Log Prefix> /l [Path of the log files] /d [Path of the database]
Eseutil /r E03 /l D:\MDB03\ /d D:\MDB03\MDB03.edb

Repair

Ein Repair sollte nur dann ausgeführt werden, wenn die DB im "Dirty Shutdown" state und die Logfiles nicht mehr verfügbar sind. Ein Database Repair hat einen Datenverlust zur Folge - deshalb wird auch eine Warung ausgegeben.

Eseutil /p [Path to Database] /t [Path to Temporary Databasefile]
Eseutil /p D:\MDB03\MDB03.edb /t D:\MDB03\temp_MDB03.edb

Grüsse
Andres Bohren

posted @ Sunday, February 05, 2012 3:30 PM | Feedback (0) | Filed Under [ Exchange ]

Exchange 2010 Database Files

Hallo zusammen,

Bei Exchange Server sind verschiedene Dateien für die Exchange Datenbanken beteiligt. Einge gute übersicht dazu gibts in diesem BuchExchange Server 2010 Administrator's Pocket Consultant Seite 77.

Im grossen und ganzen bestehen die Mailbox Datenbanken aus der Datenbank (database.edb) und den dazugehörigen Transaction Logs (E##.log, E##00000001.log...) sowie den Reserve Logfiles (E##00000001.log,...E##0000000A.log)

Im Windows Explorer sieht das dann so aus

Und hier die Beschreibungen der einzelnen Files

 

Datei Funktion Beschreibung
E03.chk Checkpoint File In diesem File wird gespeichert, welche Transaktionen der Logfiles bereits commited sind.
E03.log Actual Exchange Logfile Aktuelle Transaktionen welche änderungen an der Datenbank vornehmen
E0300000001.log,E0300000002.log... Secundary Exchange Logfiles Weitere Logfiles werden erstellt. Es können bis zu einer Billion Logfiles zu einer Mailbox Datenbank erstellt werden.
E03res00001.jrs,...E03res0000A.jrs Reserve Logfiles Reserve Logfiles, falls das Log volläuft
E03tmp.log Temporary Logfile Temporäres Logfile
MDB03.edb Exchange Database Exchange Mailbox Datenbank
tmp.edb Tempory Transactions Temporärer Speicherplatz für Transaktionen
Grüsse
Andres Bohren

 

posted @ Sunday, February 05, 2012 2:16 PM | Feedback (0) | Filed Under [ Exchange ]

Powered by:
Powered By Subtext Powered By ASP.NET