Hi,
ich bin gerade ein PowerShell Script am schreiben, welches automatisiert PST-Files in ein Postfach laden soll.
Die Abfolge des kompletten Import-Vorgangs ist folgende:
1. Import des Postfachs mit PowerShell
2. Erstellen des Logfiles mit PowerShell
3. Import der Mails mit Java-Programm in Archivierungssystem
4. Löschen der Mails mit Java-Programm
5. Deaktivieren des Postfachs mit PowerShell
6. Erstellen eines neuen Postfachs mit PowerShell
Weil ich bloß Schritt 1,2,4 und 6 mit der PowerShell realisieren kann, ist das Automatisieren des Vorgangs noch etwas problematisch.
Somit muss in das Script eine Variable, in welches das Java-Programm dann Werte an das PowerShell Script übergibt.
Diese Werte sind die Dateinamen der PST-Files.
Das Java-Programm ruft also nach dem Auslesen des Dateinamens das PowerShell-Script auf und dieses übernimmt dann den Importvorgang.
Zu Testzwecken fordere ich den Benutzer auf den Pfad der PST-Datei einzugeben, damit die Variable gefüllt wird.
So sieht das Script bisher aus.
<code>
# Pfad-Variable wird definiert
$pfad=""
# Benutzer wird aufgefordert die Variable zu füllen
$pfad = Read-Host "Bitte geben Sie den Dateipfad ein"
# Überprüfung ob der Pfad im Filesystem mit dem eingegebenen Pfad übereinstimmt
if ((test-path $pfad))
{
Write-Host "Der Pfad ist okay"
# Inhalt des Ordners im Filesystem wird ausgelesen und in eine weitere Variable geschrieben
$pstdaten=Get-ChildItem -Path $pfad -Name -Include *.pst
# Schleife ruft das Import Cmdlet auf und kopiert die Log-Datei in einen anderen Ordner
foreach ($i in $pstdaten)
{
# Hier tritt das Problem auf. Die Shell kann plötzlich nix mit dem Import-Cmdlet anfangen
# und schreibt den Inhalt der Variable nicht hinter den Dateipfad
Import-Mailbox -Identity "Migration" -PSTFolderPath "D:\PST-Import\$pstdaten" -AllowDuplicates
Move-Item "D:\Microsoft\Exchange Server\V14\Logging\MigrationLogs\*.*" -destination "D:\PST-Import\Logs"
}
# Stimmt der Pfad nicht überein, gibts ne Fehlermeldung
}
else
{
Write-Host "Ungültiger Pfad" -ForegroundColor Red
}
</code>
Wie auskommentiert beschrieben, kann die Shell plötzlich nix mit der Import-Anweisung anfangen.
Ich bekomme folgende Fehlermeldung
<code>
Die Benennung "Import-Mailbox" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführb
aren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), un
d wiederholen Sie den Vorgang.
Bei D:\PST-Import\Auto-Migration.ps1:28 Zeichen:17
+ Import-Mailbox <<<< -Identity "Migration" -PSTFolderPath "D:\PST-Import\$pstdaten" -AllowDuplicates
+ CategoryInfo : ObjectNotFound: (Import-Mailbox:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
</code>
Kann mir hier jemand helfen?
P.S. Fairerweise möchte ich darauf hinweisen, dass ich bei diesem Skript Unterstützung eines Mitglieds des http://www.administrator.de und bei der Umsetzung des Import-Vorgang jede Menge Hilfe des http://www.nobbysweb.de/ Boards hatte.
Danke an dieser Stelle
Freue mich über jede Anregung.
Grüße
Tray