Stefan W 14 Geschrieben 6. Mai 2013 Melden Teilen Geschrieben 6. Mai 2013 Grüß euch, Bei uns ist es Usus, dass nach einem Mitarbeiteraustritt, das Exchangepostfach in eine pst Datei exportiert wird. Hierzu möchte ich ein Script schreiben, welches mir folgende Aufgaben erledigt. Mailbox auf einen lokalen Ordner exportieren um es im einmalig im Backup zu haben (ist ein spezieller Ordner, der automatisch nach 2 Tagen geleert wird) Schleife die den Exportstatus auf completed überprüft und nach Abschluss das Postfach des Users entfernt und den AD-User deaktiviert Die exportierte pst auf einen Netzwerkordner kopieren und dort vorab einen eigenen Ordner der dem Usernamen gleicht anlegen User aus allen AD Gruppen entfernen Punkt 1 ist kein Problem Punkt 2 ist kein Problem Punkt 3 ist kein Problem Punkt 4 harkt. hier habe ich keinen Ansatz wie ich das angehen könnte. Kann mir hier wer unter die Arme greifen? danke lg Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 6. Mai 2013 Melden Teilen Geschrieben 6. Mai 2013 Wo harkt es denn? Wie sieht dein Script bisher aus das den Punkt betrifft? Zitieren Link zu diesem Kommentar
Stefan W 14 Geschrieben 6. Mai 2013 Autor Melden Teilen Geschrieben 6. Mai 2013 Hi, es harkt am Gedankengang glaub ich ;) mir fehlen die passenden cmdlets um alle Gruppenzugehörigkeiten des Users zu entfernen. Das Script sieht aktuell so aus, habe es jedoch noch nicht getestet. $Datum = Get-Date -Format d $FilePath = "\\Server\Pfad\Unterverzeichnis" $user = Read-Host "Bitte Benutzernamen eingeben, dessen Mailbox exportiert werden soll" $direxist = Test-Path $FilePath\$user If ($direxist -eq False) { New-Item -path $FilePath\$user -ItemType Directory } Get-MailboxExportRequest -Status completed | Remove-MailboxExportRequest -Confirm:$false New-ExchangeExportRequest $user -FilePath $FilePath\$user\$user$Datum.pst $checkcompleted = Get-MailboxexportReqest -Status queued $completed = "0" do { start-sleep -s 300 if($checkcompleted) { Write-Host "Export is still running" $completed = 0 } else { Write-Host "Export completed" $completed = 1 } } until($Completed -eq "1") Copy-Item $FilePath\$user\$user$Datum.pst -Destination D:\getempty\pst-export\ Disable-Mailbox -identity "$user" -Archive -Confirm:$false Disable-Mailbox -identity "$user" -Confirm:$false Import-Module activedirectory Disable-ADAccount $user Zitieren Link zu diesem Kommentar
Timsk 11 Geschrieben 6. Mai 2013 Melden Teilen Geschrieben 6. Mai 2013 Hi, es harkt am Gedankengang glaub ich ;) mir fehlen die passenden cmdlets um alle Gruppenzugehörigkeiten des Users zu entfernen. Das Script sieht aktuell so aus, habe es jedoch noch nicht getestet. Hi, ich werfe da Mal "get-ADUser" in den Raum (Property Memberof) und "Remove-ADGroupMember" in den Raum. Wenn es mehr benötigt sag Bescheid, ansonsten viel Spaß :) Viele Grüße! 1 Zitieren Link zu diesem Kommentar
Stefan W 14 Geschrieben 6. Mai 2013 Autor Melden Teilen Geschrieben 6. Mai 2013 Dankeschön. Allerdings gefällt mir meine q&d Lösung nicht ;) $userdata = Get-ADUser $user $UserLDAP = [adsi]("LDAP://$userdata") $Groups = $UserLDAP.memberof foreach ($Group in $Groups) { Remove-ADGroupMember -Identity $Group -Members $userdata -Confirm:$false } Sieht hier jemand Vereinfachungsmöglichkeiten? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 6. Mai 2013 Melden Teilen Geschrieben 6. Mai 2013 Hilft dir get-aduser $user –Properties MemberOf | Select-Object Name,MemberOf weiter? Zitieren Link zu diesem Kommentar
Stefan W 14 Geschrieben 6. Mai 2013 Autor Melden Teilen Geschrieben 6. Mai 2013 Hi, leider nicht, das habe ich schon versucht. hier gibt er mir die DNs der Gruppen in {} zurück, und das Trennzeichen zwischen den Gruppen ist ein Leerzeichen. Zitieren Link zu diesem Kommentar
4077 30 Geschrieben 6. Mai 2013 Melden Teilen Geschrieben 6. Mai 2013 Sieht hier jemand Vereinfachungsmöglichkeiten? Hilft dir der letzte Eintrag unter http://social.technet.microsoft.com/Forums/en-US/exchangesvradminlegacy/thread/99c1f07b-12fa-4e06-95bd-246a757bb00f ? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 6. Mai 2013 Melden Teilen Geschrieben 6. Mai 2013 Ja und? $userdata = Get-ADUser $user -Properties MemberOf$userdata.MemberOf | % { Remove-ADGroupMember -Identity $_ -Members $user -WhatIf } Zitieren Link zu diesem Kommentar
Timsk 11 Geschrieben 6. Mai 2013 Melden Teilen Geschrieben 6. Mai 2013 (bearbeitet) Auf die schnelle... $UserGrpMembership = Get-ADUSer -Filter {Name -eq $User} -Properties memberof $UserGrpMembership.Memberof | % {get-adgroup -Filter {DistinguishedName -eq $_} | Remove-ADGroupMember -member $User} Edit: Zu spät bearbeitet 6. Mai 2013 von Timsk Zitieren Link zu diesem Kommentar
Stefan W 14 Geschrieben 6. Mai 2013 Autor Melden Teilen Geschrieben 6. Mai 2013 (bearbeitet) Danke, Einzeiler tuts auch ;) Edit: natürlich noch ein -Confirm:$false dazu (Get-ADUser $user -properties memberof).memberof | Remove-ADGroupMember -Members $user bearbeitet 6. Mai 2013 von Stefan W Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.