eject86
Goto Top

Logon Script für Backup von .pst Dateien

Hallo miteinander

Erstmals grosses Kompliment an dieses Forum. Die Beiträge hier haben mir schon des Öfteren aus de Patsche geholfen!;)

Nun jedoch zu meinem Problem:

Wir verwenden in unserer Firma einen Microsoft Exchange Server 2003 der jetzt jedoch mit der Zeit langsam aber sicher zu voll wurde. Aus diesem Grund haben einige User ihre Mails archiviert und lokal abgespeichert. Da dies jedoch keinesfalls eine endgültige Lösung sein kann und uns bei einem Ausfall der lokalen HDs keine Sicherheit bietet, deaktivierten wir die AutoArchivierung für die User. Das Ziel ist es jetzt mit einer externen Software Microsoft Exchange, was den Speicherbedarf betrifft, einigermassen unter Kontrolle zu bringen. Bevor wir dies jedoch machen, möchte ich die lokal gespeicherten .pst Dateien auf einem NAS Laufwerk, welches jede Woche gesichert wird, speichern.
Das Ganze möchte ich mit einem Logon-Script realisieren. Da ich jedoch noch nicht wirklich viel Erfahrung damit habe, wollte ich um etwas Hilfe betteln!;)

Das Script müsste folgendermassen ablaufen:

1. Prüfen ob es auf dem NAS im Ordner des Benutzers ein File mit dem Namen „Finish“ hat.
2. Wenn es dieses File hat, das Script beenden. Wenn nicht --> Schritt 3
3. Erstellen eines Ordners mit dem Namen des Benutzers auf dem NAS
4. Die lokale Festplatte nach .pst Files durchsuchen
5. Die gefundenen Dateien in den neu erstellten Ordner auf dem NAS kopieren
6. Nach dem Kopieren eine Datei im gleichen Ordner erstellen mit dem Namen „Finish“
7. In die Datei „Finish“ die Zeit und das Datum schreiben
8. End

Dieses Script würde ich danach ca. einen Monat laufen lassen, bis wir von allen Usern einen Ordner auf dem NAS besitzen.

Ist dieses Vorgehen vertretbar oder gibt es da bessere Lösungen?
Könnt ihr mir helfen ein solches Script zu schreiben?

Hoffe ich habe genügend Informationen gegeben, sonst bitte einfach fragen.

Danke schon mal zum Voraus!

Content-Key: 70516

Url: https://administrator.de/contentid/70516

Ausgedruckt am: 29.03.2024 um 02:03 Uhr

Mitglied: 6741
6741 09.10.2007 um 16:54:31 Uhr
Goto Top
hi ...

wenn du im Logon Script erst die Festplatte nach einer *.pst suchst, wann soll der User denn arbeiten können? Das kann Minuten dauern. Mal als Überlegung.

gruß
Mitglied: eject86
eject86 09.10.2007 um 17:03:05 Uhr
Goto Top
Danke für die schnelle Antwort!

Ja das habe ich mir natürlich auch überlegt. Daher würde ich zuerst ein Rundschreiben machen und die Leute darauf aufmerksam machen, dass das Starten beim nächsten Mal etwas länger dauern könnte!

Was man sich natürlich noch überlegen könnte ist, dem Benutzer die Möglichkeit zu geben den Vorgang in einem gewissen Zeitraum noch abzubrechen.
Aber das dieses Script ja nur einmal komplett durchgeführt werden müsste, sollte dies für den Benutzer noch einigermassen in Ordnung sein.
Mitglied: 6741
6741 09.10.2007 um 17:34:18 Uhr
Goto Top
erzeuge eine copy.bat diese würde ich zur Pause laufen lassen Mittag oder in der Frühstückspause.



if exist \\server\freigabe\%usename%\finish%date%.* than goto copyend

xcopy C:\*.pst \\server\freigabe\%username%\ /E /Y

print \\server\freigabe\%username%\finish%date%.txt

goto copy end


:copy end

ende


der print Befehlt schreibt die Datei mit dem Datum so kann sichergestellt sein das min am Tag der Befehl ausgeführt worden ist. Xcopy sucht alle Verzeichnisse ( /E )nach *.pst und überschreibt ( /Y ) das Ziel !

teste es mal ...
Mitglied: bastla
bastla 09.10.2007 um 17:58:25 Uhr
Goto Top
Hallo eject86 und firewalldevil!

Nur als Anmerkung: Der "xcopy"-Schalter "/E" sollte besser durch "/S" ersetzt werden, weil ansonsten die gesamte Ordnerstruktur von C: kopiert würde ...

Grüße
bastla
Mitglied: 6741
6741 09.10.2007 um 18:48:06 Uhr
Goto Top
hi bastla...

ich habe heute den "effekt" ausversehen gehabt. Da wurden nur alle Dateien text*.txt kopiert und aus allen Unterverzeichnissen. War ungewollt, aber würde hier nutzen. Sprich ...

xcopy \\server\freigabe\text*.txt c:\ordner ....

auf dem Server wurde der komplette Ordner "freigabe" durchsucht mit allen unterordnern ... so wie eject86 das mit der C: Platte möchte.

liege ich so falsch?
Mitglied: bastla
bastla 09.10.2007 um 19:20:46 Uhr
Goto Top
@6741

auf dem Server wurde der komplette Ordner "freigabe" durchsucht mit allen unterordnern ...
Das ist genau das, was "/S" macht.

Der Schalter "/E" dient dazu, eine gesamte Ordnerstruktur inkl leerer Ordner zu kopieren. "/S" erstellt einen Zielordner nur dann, wenn dieser auch einen Inhalt bekommt (Datei oder Unterordner).

Was hattest Du eigentlich mit
print \\server\freigabe\%username%\finish%date%.txt
vor? Um eine Kennung für "Daten dieses Users wurden bereits kopiert" zu setzen, würde der Befehl eher
echo %date%_%time%>\\server\freigabe\%username%\finish.txt
lauten.
@eject86

Der gesamte Batch könnte dann etwa so aussehen:
@echo off
if exist \\server\freigabe\%username%\finish.txt goto :eof
if not exist \\server\freigabe\%username% md \\server\freigabe\%username%
echo Sicherung pst-Datei(en) ...
xcopy C:\*.pst \\server\freigabe\%username%\ /S >nul 2>nul
echo %date%_%time%>\\server\freigabe\%username%\finish.txt
Das "/Y" aus firewalldevil's Vorschlag sollte eigentlich nicht nötig sein, da ja ohnehin nur einmal kopiert werden soll und es daher eigentlich noch keine Dateien im Zielordner (und auch diesen selbst nicht) geben dürfte - es sei denn, User hätten Ihre pst-Dateien auf mehreren Rechnern lokal abgelegt. Dann wäre es aber ohnehin auch sinnvoller, vorhandene Sicherungsdateien nicht einfach zu überschreiben, sondern eher beim Speichern zB noch den Rechnernamen hinzuzufügen.

Grüße
bastla

[Edit] Da nur von "einigen Usern" die Rede war, kann nicht davon ausgegangen werden, dass jeder User lokale pst-Dateien zu kopieren hat - daher besser gleich den Ordner vorweg erstellen (und nicht erst durch "xcopy"), damit die "finish.txt" sicher in einen bereits bestehenden Ordner geschrieben werden kann. Den Batch habe ich entsprechend geändert. [/Edit]
Mitglied: eject86
eject86 19.10.2007 um 15:53:06 Uhr
Goto Top
Hallo!

Vielen Dank für die diversen Antworten und sorry, dass ich erst jetzt antworte. War die letzte Woche leider abwesend.

Ich habe das folgende Script mal getestet:


@echo off
Title Sicherung archiv.pst
color C
echo ACHTUNG! Ihr kompletter Computer wird nach PST-Files durchsucht. Dies kann einige Minuten dauern.
pause
if exist \\blabla\outl_archiv\%computername%\finish.txt goto :eof
if not exist \\blabla\outl_archiv\%computername% md \\blabla\outl_archiv\%computername%
echo Sicherung pst-Datei(en) ...
xcopy C:\*.pst \\blabla\outl_archiv\%computername%\ /S >nul 2>nul
echo %date%_%time%>\\blabla\outl_archiv\%computername%\finish.txt
echo Die Sicherung ihrer PST-Files wurde erfolgreich beendet.
pause


Leider werden beim Durchsuchen der HD nicht alle .pst Files gesichert.
Ich habe z.B. im Standardordner von Outlook (C:\Dokumente und Einstellungen\Benutzer\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook) eine .pst Datei die nicht gefunden wird.
Warum ist dies so? Durchsucht man mit dem Befehl "xcopy" die versteckten Ordner nicht oder an was könnte das liegen?

Vielen Dank für eure Antworten!

Grüsse
eject86
Mitglied: estranged
estranged 19.10.2007 um 16:33:24 Uhr
Goto Top
Der Ordner "Lokale Einstellungen" bzw. "Local Settings" ist versteckt, deswegen brauchst du noch den Schalter "/h" bei xcopy.
xcopy "%userprofile%\*.pst" c:\backup\ /s /h
funktioniert bei mir sehr gut.
Mitglied: eject86
eject86 30.10.2007 um 11:07:15 Uhr
Goto Top
Vielen Dank!
Das Ganze funktioniert jetzt relativ gut. Nur ein Problem habe ich noch:

- Wie kann ich nur die .pst Dateien in einen Ordner kopieren ohne die gesamte Verzeichnisstruktur? Ich möchte alle gesicherten Files nur in einem Ordner haben und nicht in verschiedenen Verzeichnissen.

Was muss ich an diesem Befehl ändern: "xcopy C:\*.pst \\netzerk\%computername%\ /S /h >nul 2>nul"
Mitglied: bastla
bastla 30.10.2007 um 13:21:19 Uhr
Goto Top
Hallo eject86!

Wenn Du Dir sicher bist, dass es keine gleichnamigen .pst-Files auf einem Rechner gibt (wodurch die erste Kopie durch eine spätere Kopie automatisch überschrieben würde), kannst Du es so versuchen:
for /f "delims=" %%i in ('dir C:\*.pst /s /b /a-d 2>nul') do copy "%%i" "\\netzerk\%computername%\%%~nxi">nul  

Alternativ dazu wäre vielleicht eher doch zu überlegen, bis Du relativ sicher bist, alle relevanten Dateien "erwischt" zu haben, bei der bisherigen Variante zu bleiben und erst danach die einzelnen Dateien zusammenzufassen. Der Vorteil wäre IMHO, dass Du die Herkunft der Daten (anhand der Ordnerstruktur) besser nachvollziehen kannst und das Zusammenfassen auch interaktiv (im einfachsten Fall sogar über die Windows-Suche) erfolgen könnte (da eben nur ein Arbeitsgang für sämtliche Dateien / User / Computer), wodurch Du auch effizienter auf das oben angesprochene Problem gleichnamiger, aber in verschiedenen Ordnern gespeicherter, Dateien reagieren könntest.

Grüße
bastla
Mitglied: eject86
eject86 01.11.2007 um 14:18:33 Uhr
Goto Top
Ciao bastla

Stimmt! Du hast vollkommen recht. Ich werde die Daten erst nach der Sicherung bearbeiten.
Vielen Dank für eure Antworten!

Gruss
eject86