Sunday, February 05, 2012
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

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

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
