Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Per VBA Größe der .pst-Datei ermitteln - wie gehts schneller?

Frage Microsoft Outlook & Mail

Mitglied: steini01

steini01 (Level 1) - Jetzt verbinden

03.01.2006, aktualisiert 04.01.2006, 10552 Aufrufe, 8 Kommentare

Hallo alle zusammen,

In unserer Firma gibt es User, die es immer wieder schaffen, Ihre .pst Dateien über die 2GB-Grenze hinaus aufzublähen.
Das bedeutet für mich jedesmal eine doch recht langwierige und lästige Reparatur mit den Tools "PST2GB" und "SCANPST" (von dem jeweiligen Datenverlust mal ganz abzusehen).
Also hab ich mir überlegt, ich schreibe ein kleines Makro, welches beim Start von Outlook dem Benutzer beim überschreiten der Größe von 1,5GB seiner .pst Datei eine entsprechende Meldung ausgibt.
Soweit - so Gut, leider konnte ich im Outlook-VBA keine Methode finden, welche mir die Gesamtgröße der Persönlichen Ordner-Datei ausgibt. D.h. ich ermittle jetzt über eine Rekursion die Größen aller einzelnen Unterordner und addiere diese dann zusammen. Hier mal mein Code:

Dim lTotalSize As Long

Private Sub Application_Startup()
ListAllFolders
End Sub


Function FolderSize(objFolder As MAPIFolder) As Long
Dim i As Long
Dim lSize As Long

With objFolder.Items
For i = 1 To .Count
lSize = lSize + .Item(i).Size
Next i

' Rückgabe in Bytes
FolderSize = lSize
End With
End Function


Sub ListAllFolders()
Dim olNS As NameSpace
Dim iTotalSize As Integer
lTotalSize = 0
Set olNS = Application.GetNamespace("MAPI")
ListFolder olNS.Folders, 0

'Ausgabe der gesamten Ordnergröße in MB
iTotalSize = Int(lTotalSize / 1024 / 1024)

'Wenn Datei > ~1,5GB dann Warnmeldung ausgeben
If iTotalSize > 1500 Then
MsgBox "Die Gesamtgröße der Persönlichen Ordner-Datei" & _
" beträgt: " & vbCrLf & CStr(iTotalSize) & " MB"
End If
End Sub


Sub ListFolder(parentfolder As Folders, i As Integer)
Dim olFold As MAPIFolder
Dim lSingleSize As Long

For Each olFold In parentfolder

'Ordnergröße ermitteln
lSingleSize = lSingleSize + FolderSize(olFold)
ListFolder olFold.Folders, i + 1
DoEventsNext

'Ordnergröße zur Gesamtgröße addieren
lTotalSize = lTotalSize + lSingleSize
End Sub


Das Ganze funktioniert soweit auch ganz gut, aber bei entsprechend vielen Unterordnern bzw. Dateigröße kann die Abarbeitung schon mal etwas dauern.
Damit wären wir auch bei meiner Frage: Kennt vielleicht jemand eine andere (schnellere) Möglichkeit, die Größe der Persönlichen Ordner-Datei per VBA zu ermitteln?

Schon mal vielen Dank im voraus.

Gruß steini.
Mitglied: wiri
03.01.2006 um 16:05 Uhr
hi
liegen die Postfächer auf einem Exchangeserver?
wenn ja mach es dir doch einfacher:
-lege eine Speicherbegrenzung auf die Postfächer
-baue dir ein Script welches dir direkt vom Exchangedbs die größen liefert
dies könnte ich dir zu mailen. )

cu
willi
Bitte warten ..
Mitglied: Biber
03.01.2006 um 17:09 Uhr
Moin steini,

schließe mich inhaltlich verkehrsberuhigt an: ich würde als Strategie wählen, irgendjemand zu fragen, der die Gesamtgröße der *.pst-Datei schon griffbereit hat, so wie in dem angegebenen Link der DIR-Befehl.

Dieses Zusammenstoppeln der Einzel-Ordnergrößen kann nicht der schnellste Weg sein.

Als reine VBA-Outlookvariante würde ich folgende Skizze nehmen:
- Ermitteln der "Persönlichen-Ordner"-Dateinamen/Speicherorte über Outlook
- dann über FileSystemObject-Funktionen in diesen Ordner auf dieses File-Object
- .FileSize abgreifen
- Feddich

Hat gegenüber der DIR-über-die-ganze-Platte-Mimik drei Vorteile:
a) Performanzvorteile
b) Du hast explizit nur die PST-Datei des angemeldeten Users bzw. Profils
c) Du hast kein Theater mit "langen" Byte-Angaben - der Command-Interpreter kann eben nur mit Zahlen < 10 GigaByte rechnen.

Details gerne bei Bedarf.
HTH Biber

@wiri:
Deine Variante fände ich auch von Allgemein-Interesse.
Wäre das Skript zu lang, um es hier zu posten?
Bitte warten ..
Mitglied: wiri
03.01.2006 um 17:31 Uhr
hi biber
dat Zeug könnte ich hier posten, kann ich aber erst diese Tage.
Bitte warten ..
Mitglied: Biber
03.01.2006 um 21:33 Uhr
@wiri
Danke, wiri... ist ja nix Eiliges...
Vielleicht können wir dann mal so ein "Größe der *.pst-Datei ermitteln"-Tutorial zusammenschreddern mit allen denkbaren Szenarios (lokal, Benutzerbezogen, auf dem Exchange-Server).
Diese uneinsichtigen User hören ja doch nicht auf, mehr zu mailen als M$ verkraftet... bleibt ja doch an uns hängen.

Gruß Biber
Bitte warten ..
Mitglied: steini01
04.01.2006 um 07:44 Uhr
Hallo zusammen,

vielen Dank für die Antworten!
Also die Dateien liegen im Netzwerk auf dem Fileserver (kein Exchange Server).
Ich werde mal die Variante über das FileSystemObject ausprobieren, komme warscheinlich aber erst nächste Woch dazu
Ich werde dann nochmals Rückmeldung geben, schaue aber zwischenzeitlich immer mal wieder hier rein bzgl. des Scripts von Wiri.
Also nochmals vielen Dank an alle die sich Gedanken gemacht haben.

Gruß steini.
Bitte warten ..
Mitglied: steini01
04.01.2006 um 11:51 Uhr
Hallo nochmal,

warum das Rad neu erfinden, wenns doch das meiste schon fertig gibt?
Ich habe unter folgendem Link einen entsprechenden Codeschnipsel gefunden und auf meine Bedürfnisse angepasst:

http://www.outlookcode.com/codedetail.aspx?id=680

Funktioniert fantastisch, und sogar mit UNC-Notation für nicht verbundene Netzlaufwerke.
Evtl. solltet Ihr das in Euer Tutorial mit aufnehmen, ich bin ja schließlich nicht der erste mit so einem Problem.
Nochmals vielen Dank.

Man liest sich,
Gruß steini.
Bitte warten ..
Mitglied: Biber
04.01.2006 um 17:18 Uhr
Danke, steini,

finde ich die richtige Einstellung, nicht jedes Rad neu erfinden zu wollen...
Deshalb habe ich mich auch gestern auf die oben genannten Stichworte beschränkt.

Mit dem Tutorial - ich glaube, das gehen wir erst an, wenn sich diese Punkte-Jieperei ein bisschen gelegt hat.. oder wir melden uns unter einem neuen Account "admin-teamwork" neu an.
Sonst fangen wiri, Du und ich auch noch an, uns um die Viertelpunkte zu balgen

Grüße Biber
Bitte warten ..
Ähnliche Inhalte
Outlook & Mail
Outlook PST datei zu groß wie sichern
gelöst Frage von chaos2goOutlook & Mail17 Kommentare

Hey guys, es geht um Outlook 2003 und Windows 7 folgendes Problem Chef zieht auf einen neuen Laptop nun ...

Microsoft Office
VBA - aktuelle Kalenderwoche ermitteln
gelöst Frage von Ghost108Microsoft Office3 Kommentare

Hallo zusammen, wie kann ich mit Hilfe von VBA die Kalenderwoche des aktuellen Datums ermitteln?

Visual Studio
Prozedur zu groß VBA
Frage von peterchen1976Visual Studio2 Kommentare

Hallo ich habe ein Exel in welches ich eine sehr sehr lange Prozedur reinschreibe dann bekomme ich den Fehler: ...

Outlook & Mail
PST-Datei auf Server speichern
gelöst Frage von SarekHLOutlook & Mail55 Kommentare

Hallo zusammen, wie greift Outlook auf eine PST-Datei zu, sequentiell oder wahlfrei? Ein Kunde möchte seine PST-Datei gerne auf ...

Neue Wissensbeiträge
Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 5 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 6 StundenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1010 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell22 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen18 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Logging von "gesendeten Nachrichten" auf Terminalservern
gelöst Frage von Z3R0C0MM4N0THiN6Windows Server10 Kommentare

Hallo zusammen, kann mir jemand auf kurzem Wege sagen ob 1) die per Task-Manager (oder damals tsadmin) an Benutzer ...