Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Scriptfragen zu Massenexport

Frage Microsoft Exchange Server

Mitglied: Skarden

Skarden (Level 1) - Jetzt verbinden

13.03.2012 um 11:52 Uhr, 3331 Aufrufe, 2 Kommentare

Hallo,

ich möchte auf einem Exchange Server 2010 einen Massenexport in PST-Dateien durchführen. Dies soll als zusäztliche Sicherung ein mal die Woche geschehen. Es handelt sich dabei um ca 130 Konten.

Dafür habe ich mir ein Script zusammengeschustert. Leider ist das Ganze nur teilweise erfolgreich. wie man dem Script sicher entnehmen kann, habe ich vom scripten nur rudimentäre Ahnung. Und mir die einzelnen Teile zusammengeklaubt.

Die Sicherung wird am Wochenende via gepanten Task angestossen und hat somit genug Zeit durchzulaufen.

Der Task ruft die Datei Mailexport.cmd mit folgendem Inhalt auf:

PowerShell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; \\Exchange\Scripte\Mail-Export-All.ps1"

Dies soll mir eine Exchange-Powershell öffnen und dann das eigentliche Powershellscript aufrufen. Das klappt auch soweit.

Die Mail-Export-All.ps1 hat folgenden Inhalt:

foreach ($i1 in (Get-Mailbox)) {New-MailboxRepairRequest -Mailbox $i1 -CorruptionType ProvisionedFolder,SearchFolder,AggregateCounts,Folderview };
foreach ($i2 in (Get-Mailbox)) { New-MailboxExportRequest -Mailbox $i2 -FilePath "\\Exchange\psts\$($i2.Alias).pst" };
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest;
Get-MailboxExportRequest -Status Failed | fl >> \\Exchange\temp\Failed.txt;
Dir e:\psts > \\Exchange\temp\pst.txt
c:\script\blat\Blat -install smtpserver Absendeadresse
c:\script\blat\Blat "c:\temp\pst.txt" -to Empfängeradresse -server smtpserver -u User -pw Passwort -debug -timestamp -subject "Info PST-Folder Inhalt"
c:\script\blat\Blat "c:\temp\Failed.txt" -to Empfängeradresse -server smtpserver -u User -pw Passwort -debug -timestamp -subject "Info PST-Export-Failed"

Was soll das Script genau machen:

1. Alle Mailboxen reparieren
2. Alle Mailboxen in einen Ordner PSTs exportieren
3. Die korrekt durchgelaufenen Exports wieder löschen
4. Die Fehlerhaften Exports auflisten und in eine Datei speichern
5. Den Inhalt des PSTs-Verzeichnis auflisten und in eine Datei speichern
6. Die beiden gespeicherten Dateien per Mail versenden.

Was ist wirklich passiert:

Ich bekam keine Mail, Die Dateien pst.txt und failed.txt wurden nicht aktualisiert, ein Großteil der Mailboxen wurden exportiert, die erfolgreichen Exports wurden gelöscht

Die einzelnen Zeilen für sich habe ich getestet und sie scheinen auch zu funktionieren. Nur bei Punkt 1 bekomme ich eine Fehlermeldung im Laufe der Ausführung die da lautet:

Anforderung für Onlineintegritätsüberprüfung für Datenbank Mailbox Database 1943330521 konnte nicht gesendet werden. Fehler: Die Taskwarteschlange ist voll. Versuchen Sie es später erneut.
+ CategoryInfo : InvalidOperation: ( [New-MailboxRepairRequest], OnlineIsIntegException + FullyQualifiedErrorId : 338CB80E,Microsoft.Exchange.Management.Tasks.NewMailboxRepairRequest

Er schafft 70 Reparaturen, dann kommt ca 20x der Fehler dann kommen wieder 40 Reparaturen. Hier wäre die Frage, wie kann man die Warteschlange vergrößern oder wie kann ich das in 2 Schritten durchführen?

Bei dem Löschvorgang gibt es eine Abfrage die eine Eingabe erwartet. Wie kann ich diese mit übergeben? Ich denke, das an dieser Stelle das Script dann stehenbleibt und den Rest gar nicht mehr abarbeitet.

Kann mir da jemand weiterhelfen?

Danke und Gruß
Skarden
Mitglied: emeriks
13.03.2012 um 19:06 Uhr
Zeile 1 und 2 erzeugen Requests. Diese werden in Warteschlangen eingereit und im Hintergrund bearbeitet. Das Script macht mit den nächsten Zeilen weiter, auch wenn die Reguests im Hintergrund noch abgearbeitet werden.
Insofern laufen die Aktionen aus zeile 1 und 2 also parallel ab.
Die Get-Abfragen in Zeile 3 und 4 sind damit auch hinfällig, weil zu früh.

Zu Blat kann ich nichts sagen, setze das selbst nicht ein.

Ich würde die einzelnen Schritte zeitlich aufsplitten über mehrere Scripte, die in zeitlichem Abstand unabhängig von einander gestartet werden.

Bsp.
18:00 Uhr Script mit Zeile 1
20:00 Uhr Script mit Zeile 2
24:00 Uhr Script mit Zeile 3 und 4 (Startzeit je nach dem, wie lange der Export erwartungsgemäß läuft)
24:15 Uhr Script mit Rest


Weiterhin: Du musst auch die "Failed" Request löschen, weil die sonst in der Warteschlange stehen bleiben.
Bitte warten ..
Mitglied: Skarden
14.03.2012 um 15:00 Uhr
Hallo,

danke für die Antwort.

Ein Problem ist ja. dass Zeile 1 für sich schon ein "volllaufen" der Warteschlange bringt. Die einzelnen Teile zeitlich zu entzerren ist eine gute Idee.

Skarden
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...