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!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 70516
Url: https://administrator.de/contentid/70516
Ausgedruckt am: 24.11.2024 um 16:11 Uhr
11 Kommentare
Neuester Kommentar
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ß
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ß
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 ...
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 ...
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?
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?
@6741
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
vor? Um eine Kennung für "Daten dieses Users wurden bereits kopiert" zu setzen, würde der Befehl eher
lauten.
@eject86
Der gesamte Batch könnte dann etwa so aussehen:
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]
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
echo %date%_%time%>\\server\freigabe\%username%\finish.txt
@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
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]
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:
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
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