Prüfung meines PS Scripts
Good morning admins!
Kann jemand über mein PS script gehen und mir Rückmeldung geben?
Das Script soll aus bestimmten Postfächern den Ordner gelöschte Elemente löschen und ggf. auf einem Batch Server laufen.
Danke schon mal fürs lesen bis hier!
VG
Meow!
Kann jemand über mein PS script gehen und mir Rückmeldung geben?
Das Script soll aus bestimmten Postfächern den Ordner gelöschte Elemente löschen und ggf. auf einem Batch Server laufen.
Danke schon mal fürs lesen bis hier!
VG
Meow!
# Exchange-Modul importieren
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
# Verbindung mit dem Exchange-Server herstellen
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<ExchangeServer.Domain.de>/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -DisableNameChecking
# Liste der Postfächer, aus denen der Ordner "Gelöschte Elemente" geleert werden soll
$PostfachListe = @(
"Umpa1@Lumpa.de",
"Umpa1@Lumpa2.de"
# Platzhalter
)
# Durchlaufen der Postfächer und Leeren des Ordners "Gelöschte Elemente"
foreach ($Postfach in $PostfachListe) {
Write-Host "Leere den Ordner 'Gelöschte Elemente' im Postfach: $Postfach"
# Suchen nach gelöschten Elementen im Ordner "Gelöschte Elemente"
$GelöschteElemente = Search-Mailbox -Identity $Postfach -SearchDumpsterOnly -SearchQuery "Kind:deletes"
# Löschen der gefundenen gelöschten Elemente
if ($GelöschteElemente.Count -gt 0) {
$GelöschteElemente | ForEach-Object {
Remove-MailboxItem -Identity $Postfach -MailboxItemLocation $_.Identity -Confirm:$false
}
Write-Host "Der Ordner 'Gelöschte Elemente' im Postfach $Postfach wurde geleert."
} else {
Write-Host "Keine gelöschten Elemente im Ordner 'Gelöschte Elemente' des Postfachs $Postfach gefunden."
}
}
# Verbindung zum Exchange-Server trennen
Remove-PSSession $Session
Please also mark the comments that contributed to the solution of the article
Content-ID: 33202203648
Url: https://administrator.de/contentid/33202203648
Printed on: November 8, 2024 at 18:11 o'clock
3 Comments
Latest comment
Moin,
Sonst: sexy.
Gruß
Add-PSSnapin
nutzt Du Exchange 2013 oder neuer? Dann:# Überprüfen, ob das Exchange-Modul bereits geladen ist
if (-not (Get-Module -ListAvailable -Name "ExchangeOnlineManagement")) {
# Versuchen, das Modul zu importieren
Import-Module ExchangeOnlineManagement -ErrorAction Stop
}
# Verbindung mit dem Exchange-Server herstellen
$UserCredential = Get-Credential
try {
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<ExchangeServer.Domain.de>/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -DisableNameChecking -ErrorAction Stop
} catch {
Write-Error "Fehler beim Verbinden mit dem Exchange-Server: $_"
exit
}
# Liste der Postfächer
$PostfachListe = @(
"Umpa1@Lumpa.de",
"Umpa1@Lumpa2.de"
# Weitere Postfächer hinzufügen
)
# Durchlaufen der Postfächer und Leeren des Ordners "Gelöschte Elemente"
foreach ($Postfach in $PostfachListe) {
Write-Host "Versuche, den Ordner 'Gelöschte Elemente' im Postfach: $Postfach zu leeren..."
try {
# Direktes Löschen der gelöschten Elemente
Search-Mailbox -Identity $Postfach -SearchDumpsterOnly -SearchQuery "Kind:deletes" -DeleteContent
Write-Host "Der Ordner 'Gelöschte Elemente' im Postfach $Postfach wurde geleert."
} catch {
Write-Error "Fehler beim Leeren des Ordners 'Gelöschte Elemente': $_"
}
}
# Verbindung zum Exchange-Server trennen
Remove-PSSession $Session
$GelöschteElemente
Blöd, trenn Dich von "Sonderzeichen". -> $geloeschteElemente.Sonst: sexy.
Gruß
Ich würde ja direkt Retention-Policies verwenden und die Policy den gewünschten Mailboxen zuweisen dann erledigt sich das Skript-Löschen von selbst
Erstellen einer Aufbewahrungsrichtlinie in Exchange Server
Erstellen einer Aufbewahrungsrichtlinie in Exchange Server