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?

Mitglied: steini01

steini01 (Level 1) - Jetzt verbinden

03.01.2006, aktualisiert 04.01.2006, 10821 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
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?

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 ...

Outlook & Mail
Outlook 2007: pst-Datei defekt?
Frage von MohrSysOutlook & Mail3 Kommentare

Hallo, ich habe ein großes Problem und hoffe ihr könnt mir helfen? Ich habe ein Notebook mit Windows7 Home ...

Microsoft Office

Excel 2013 Duplikate löschen und Startzeile ermitteln VBA

gelöst Frage von AlexIOTMicrosoft Office5 Kommentare

Servus miteinander, ich bräuchte einen VBA Code der in 7 verschiedenen Spalten die Duplikate rauslöscht aber nicht Leere Zeilen ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 23 StundenInternet4 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 1 TagWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 1 TagWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 2 TagenSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell24 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...

Windows Server
Client in die Domäne einbinden - Allgemeine Frage dazu
gelöst Frage von RalphTWindows Server19 Kommentare

Moin, ich habe 2 DCs in einer Hauptstelle und 2 DCs in einer Nebenstelle. Ich bringe in der Hauptstelle ...

Debian
OpenSSH Login mit Public Key schlägt fehl, mit Passwort funktioniert
gelöst Frage von DKowalkeDebian19 Kommentare

Hallo zusammen, ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch ...