Beiträge von tray-park

    Oh mist.


    Ich bin nicht böse. Ehrliche und freundliche Kritik ist mir lieber als ein arroganter und verletzender Ton in manchen Foren.


    Dann werde ich mich wohl etwas mit der Exchange Datenbank Theorie befassen müssen.


    Mit "dann hat das Löschen der DB geklappt" meinte ich, dass ich die DB gelöscht habe, da nicht mehr ausreichend Speicherkapazität zur Verfügung stand. Nach 10 Postfächern, wird die DB gelöscht und wieder neu erstellt.


    Ansonsten wüsste ich nicht, wie ich mehr Platz schaufeln kann.


    Systemprotokoll
    <Code>
    Auf dem Datenträger "D:" steht nur noch sehr wenig Speicherplatz zur Verfügung. Sie müssen eventuell einige Dateien löschen.
    </Code>
    Anwendungsprotokoll
    <code>
    Folgender Fehler beim Starten der Datenbank 'los-mailbox': Protokolldatenträger ist voll..
    Failed to configure MDB.
    </code>
    <code>
    Folgender Fehler beim Starten der Datenbank 'los-mailbox': Protokolldatenträger ist voll..
    Start DB failed..
    </code>
    <code>
    Active Manager konnte die Datenbank 'los-mailbox' nicht auf dem Server 'los-test-dom-vm.los-test-dom.local' bereitstellen. Fehler: Fehler bei Active Manager-Vorgang: Fehler Fehler bei der Datenbankaktion: Fehler bei Vorgang mit folgender Meldung: MapiExceptionJetErrorLogDiskFull: Unable to mount database. (hr=0x80004005, ec=-529)
    <code>

    Hi,


    ob man es glaubt oder nicht . . . das Beenden des Informationsspeichers hat schon einmal verhindert, dass die Platte weiter voll läuft und ein Neustart des Systems hat die Datenbank wieder bereit gestellt. Dann hat das Löschen der DB auch geklappt.


    Das heißt, ich kann mich wieder dem Problem, "getrennte Postfächer" annehmen.


    Ich hab ein kleines Skript gefunden, welches die getrennten Postfächer endgültig löschen sollte
    <code>
    $db = "Mailbox 123456789"
    Get-MailboxStatistics -database $db | where {$_.disconnectdate -ne $null} | foreach {Remove-mailbox -database $_.database -storemailboxidentity $_.mailboxguid -Confirm:$false}
    </code>
    Die getrennten Postfächer verschwinden auch tatsächlich aus der Liste, aber die Platte wird nicht wirklich kleiner.


    Die "Remove-Mailbox" Anweisung sollte das doch eigentlich schaffen oder?


    Grüße

    Hi,


    danke für die rasche Antwort.


    Mittlerweile lassen sich unter \"Getrennte Postfächer\" auch keine Postfächer mehr sichten. Ich muss zuerst die Postfachdatenbanken wieder bereit gestellt bekommen.


    Das verhindert Exchange aber.


    Wie bekomm ich dass nun wieder hin? Ich komme wohl nicht drum rum die Festplattenkapazität zu erhöhen oder?


    Danach versuche ich unter deiner Anleitung die getrennten Postfächer zu löschen.

    Hi,


    ich schreibe gerade ein Skript, welches automatisiert PST-Dateien in ein Postfach importiert.


    Ich erstelle ein Postfach, importiere die Mails aus der PST, archiviere diese und deaktiviere das Postfach wieder.


    Deaktiviert wird es, damit das Posfach beim Aktivieren wieder leer ist.


    Das funktioniert auch soweit sehr gut.


    Nun ist das Problem aufgetreten, dass mir die Festplattenkapazität nicht ausreicht um mit dem Import-Vorgang fortfahren zu können.


    Ist ja auch logisch, da das Postfach beim deaktivierten als getrenntes Postfach weiter besteht, somit aber unnötig Speicher einnimt.


    Deshalb möchte ich gerne mal alle getrennten Postfächer löschen, ohne den User im AD zu entfernen.


    Ich hab verschiedene Methoden im Sinn, funktionieren tut aber keine nach meinem Geschmack.


    Hat jemand eine Idee?


    Freue mich über jede Rückmeldung.


    Grüße




    Tray

    Hi,


    du weist nicht zufällig noch, wie ich eine Zeichenkette verändern kann? Ich habe es mit -replace versucht, aber irgendwie klappt es nicht so ganz.


    <code>
    $slash = "\\"
    $match = "\\$"
    $slash -replace $match,"/"
    </code>


    Es geht darum, dass das Javaprogramm mit den regulären Dateipfaden "D:\PST-Import\" nix anfangen kann. Das muss so übergeben werden "D:/PST-Import/"

    Hi,


    vielleicht doch noch eine Sache bevor ich das Thema schließe.


    Ich rufe in dem Skript ja eine Batch Datei auf
    <code>
    Invoke-Expression -Command "D:\PST-Import\Start-MMImport.bat -$i"
    </code>
    Die Batch-Datei gibt dann den Inhalt der Variablen an das Java-Programm.
    <code>
    @echo OFF
    "C:\\Program Files (x86)\\Java\\jdk1.5.0_14\\bin\\java.exe" -jar D:\\PST-Import\\Dialog.jar %1
    </code>
    Das musste ich so machen, da das Skript den java.exe Prozess nicht erkannt hat und weitergelaufen ist.
    Der Prozess wird so anhalten:
    <code>
    $p = Get-Process java.exe # Hier steht der Prozessname
    if ($p)
    {
    $p.WaitForExit()
    Write-Host "| Der Mail-Import wurde beendet! |" -ForegroundColor Yellow
    }
    else
    {
    Write-Host "| Der Mail-Import wurde nicht gestartet |" -ForegroundColor Yellow
    }
    </code>
    Hinter dem Prozess-namen im Task-Manager steht noch ein *32. Gebe ich das zusätzlich an, geschieht auch nix. Was kann ich hier noch tun?


    Grüßle

    Hi,


    ich hab es nun so gelöst. Einziges Problem war eben, dass die genannten Anweisungen mit dem * nichts anfangen konnten.


    Deshalb hab ich nen kleinen Umweg gemacht.
    <code>
    Move-Item "D:\\Microsoft\\Exchange Server\\V14\\Logging\\MigrationLogs\\*.xml" -Destination "D:\\PST-Import\\PST-Files\\$i.xml"
    Get-ChildItem D:\\PST-Import\\PST-Files\\ *.pst.xml | Rename-Item -NewName { $_.name -replace '\\.pst.xml','.xml' }
    </code>
    die Move-Item Anweisung alleine macht aus der Logdatei nämlich eine "Migration.pst.xml". Deshalb noch die zusätzliche Rename Anweisung die dann die Dateiendung umbenennt.


    Coole Sache.


    Danke für die großartige Hilfe RobertW. Ich hab nun richtig Spaß an der PowerShell bekommen.


    Grüße Tray