ADSync -Delete Objekt

Objekte werden absichtlich aber manchmal auch unabsichtlich gelöscht. Diese Seite beschreibt, was da im Hintergrund dann genau passiert, wenn Sie Office 365 samt DirSync im Boot haben.

Übersicht: Benutzer wird gelöscht und wieder "hergestellt"

Hierbei sind zwei Fälle zu unterscheiden. Sie können ein User direkt in der Cloud löschen und wiederherstellen oder sie löschen den Benutzer im lokalen Active Directory und der DirSync-Prozess übernimmt das Löschen.

Der "Regelfall" ist natürlich, dass Sie alle Benutzer über ihr lokales Active Directory verwalten und damit auch die Objekte in der Cloud verwaltet werde. Wenn Sie einen Benutzer "OnPremise" löschen, dann wird das Konto in der Cloud entsprechend "Gelöscht". In der Cloud landet es AD-im Papierkorb. Aber wie stellen Sie einen gelöschten Benutzer wieder her und was passiert dabei? Die folgende Tabelle soll dabei helfen.

Lesen Sie dazu vorher aber auch die Informationen der Seite ADSync Matching zum Thema ImmutableID.

Gelöschtes Objekt Zwischenstand Wiederherstellung

Cloud-Only User in Office 365 wurde mit Remove-MSOLUser oder Admin Center gelöscht.

Der Benutzer wird in den Office 365 Papierkorb verschoben. OnPremise gibt es kein entsprechendes Objekt.

Sie können das Konto mit Restore-MSOLUser oder das Admin Center einfach wieder zurückholen.

ADSyncUser in der Cloud mit "Remove-MSOLUser gelöscht

Obwohl das Konto durch den DirSync angelegt wurde. können Sie es im Admin Center und mit "Remove-MSOLUser" löschen. Es wird in den Office 365 Papierkorb verlagert.

Der "normale DirSync" löscht keine User im OnPremiseAD (Ausnahme Azure Ad Premium). Insofern bleibt das OnPremise-Gegenstück unberührt.

Genauso wie ein CloudOnly-User können sie auch einen DirSync-User aus dem Office 365 Papierkorb mittels "Restore-MSOLUser" oder Admin Center wieder zurück holen.

Er behält dabei seine ImmutableID und wird weiter abgeglichen.

OnPremise User gelöscht und KEIN AD-Papierkorb aktiv

Das Benutzer-Objekt wird durch den DirSync in Office 365 nach "Deleted User" verschoben. Der Anwender kann sich nicht mehr anmelden aber das Postfach etc. bleibt noch 30 Tage vorhanden.

Ohne Papierkorb kann das Objekt mit der gleichen GUID nur hergestellt werden, wenn ein autoritatives Restore eines DC erfolgt. Alternativ kann ein neuer Benutzer angelegt werden und dann ein Match herbeigeführt werden.

OnPremise User gelöscht und AD-Papierkorb aktiv

Das Benutzer-Objekt wird durch den DirSync in Office 365 nach "Deleted User" verschoben. Der Anwender kann sich nicht mehr anmelden aber das Postfach etc. bleibt noch 30 Tage vorhanden.

Der AD-Papierkorb erlaubt sehr schnell und einfach die Wiederherstellung eines versehentlich gelöschten Objekts.

OnPremise User nicht mehr im DirSync Scope.

Das Object wird in Office 365 entfernt, da es nicht mehr im Scope ist. Es liegt 30 Tage in dem Office 365 Papierkorb.

Wenn Sie das Objekt wieder in den Scope bringen, wird es auch wieder aus dem Office 365-Papierkorb in die normale Benutzerliste verschoben.

Die verschiedenen Fälle habe ich im Detail dokumentiert:

Office 365 ist sehr dynamisch und einige der hier beschriebenen Verhaltensweisen waren früher noch nicht möglich. Ich kann nicht dafür garantieren, dass diese auch morgen noch genauso funktionieren. Microsoft entwickelt den DirSync kontinuierlich weiter.

Löschen im lokalen AD mit DirSync

Der normale Weg ist es, ein Objekt im Active Directory zu löschen. Beim nächsten ADSync-Lauf erkennt dies der Prozess und entfernt das Konto beim Import erst aus dem Connector Space und wenn es keinen eingehenden Link in einem anderen Connector gibt, wird das Objekt auch aus dem Metaverse entfernt.

Beim nächsten Export wird das Objekt dann auch im Azure AD entfernt.

Löschen eines Benutzer im Admin Portal

Wenn Sie das Office 365 Admin-Portal nutzen, dann können Sie dort sehr wohl Benutzer löschen. Aber die GUI erlaubt ihnen nur solche Objekte zu löschen, die nicht synchronisiert sind. Der "Löschen"-Punkt ist bei meinem per ADSync verwalteten Benutzer nicht aktiv.

Insbesondere das DirSync-Konto selbst ist besonders geschützt:

Löschen eines AD-Sync Users in der Cloud per Admin Center

Interessant ist aber, dass im neuen Admin Center aktuell (Mai 2016) auch synchronisierte Objekte im Active Directory einen aktiven "Löschen" Button haben, der sogar zum nächsten Schritt führt:

Die Abschlussmeldung lässt einen sogar zuerst glauben, es wäre erfolgreich gewesen. Im "Kleingedruckten" steht aber, dass es doch nicht erfolgreich war und es aus Prinzip auch nicht möglich ist.

Eine deutliche Fehlermeldung sieht anders aus (Stand 22. März 2016). Ich bin aber sicher, dass Microsoft dies sicher bald korrigiert. Die Funktion dahinter ist auf jeden Fall korrekt, denn das Objekt wird natürlich nicht gelöscht. Ähnliches passiert, wenn Sie bei einem bei einem per DirSync verwalteten Benutzer die Gruppenmitgliedschaften ändern wollen.

Alle Gruppen die über DirSync verwaltet werden, sind "ReadOnly". Sie können den synchronisierten Office 365 User aber natürlich in eine Office 365 Gruppe addieren und entfernen

Löschen eines ADSync Users in der Cloud per PowerShell

Offiziell können Sie z.B. Benutzern nicht über die Weboberfläche löschen. Allerdings ist dies nur die halbe Wahrheit. Über die Office 365 PowerShell können Sie einen Benutzer mit "Remove-MSOLUser" auch Löschen, wenn er über den DirSync angelegt wurde. Ich habe das mit einem Konto einmal getestet"

Das Konto war danach wirklich in der Cloud "weg" und unter "Gelöschte Objekte" zu finden

Ich hätte das Konto von dort wieder "herstellen" können, aber dann wird es ein "In Cloud" Konto. Interessanter fand ich aber zu sehen, was der DirSync dazu sagt. er hat im gleichen DirSync-Lauf beim Export aus Office 365 den "Delete" erkannt und beim Import das Konto umgehen wieder angelegt.

Der Benutzer verschwindet dann auch wieder aus "Deleted Objects" und wird wieder als ganz normaler Anwender angezeigt.

Wiederverbinden ohne AD-Papierkorb

Wenn alle "Löschvorgänge" geplant waren, funktioniert der DirSync wunderbar und korrigiert auch Fehler des Administrators in der Cloud. Was aber passiert, wenn das Löschen "OnPremise" gar nicht gewünscht war und wieder rückgängig gemacht werden soll? Der aus dem AD gelöschte Benutzer ist ja im Bereich "Gelöschte Objekte" in Office 365 vorhanden. Ich wollte auf jeden Fall verhindern, dass eine erneute Bereitstellung im lokalen AD mit dem DirSync ein neues zweites Objekt anlegt und die Mails des gelöschten Benutzers verschwinden. Zudem sollte die Adresse nicht allzu lange "unerreichbar" sein. Entsprechend veränderten sich die Felder.

Ohne den AD-Papierkorb habe ich folgenden Prozess mir überlegt.

Schritt Befehl Beschreibung


ADSyncCycle anhalten 

Set-ADSyncScheduler `
   -SyncCycleEnabled:$false

Solange ADSync weiter läuft, sollten Sie nicht in der Cloud an Objekten etwas "rumschrauben". Der DirSync-Prozess ist hier sehr einehmend und wenn in seinem Tenant z.B. ein Objekt auftaucht, was dort nicht hingehört, dann wird dieses umgehend auch wieder gelöscht.


Cloud User restaurieren 

Restores <upn_des_users>

Das durch den DirSync gelöschte Benutzerobjekt liegt im Papierkorb und ist dort erst mal nicht weiter bearbeitbar. Es muss also zuerst wieder zum Leben erweckt werden. Das ist im Fall eines gelöschten Objekts besonders wichtig, damit z.B.: eingehende Mails weiterhin funktionieren. Länger als 30 Tage darf dies aber nicht dauern, sonst ist das Postfach leer.


ImmutableID leeren 

set-MsolUser `
   -UserPrincipalName <upn_des_users> `
   -ImmutableId ""

Das wiederhergestellte Objekt hat noch alle vorherigen Properties. Damit es mit einem neuen AD-Objekt "gematched" werden kann, muss die ImmutableID erst einmal geleert werden. Die Angabe von "$null" funktionierte bei mir nicht. Erst ein Leerstring hat das Feld leer gemacht.


AD-Objekt bereitstellen 

OnPremise AD

Im lokalen OnPremise-AD habe ich dann ein AD-Objekt wieder neu angelegt (oder aus der Papierkorb wieder hergestellt). Wichtig ist, dass das Feld "Mail" dieses Objekts genau mit dem Feld "Mail" des Office 365-Objekts übereinstimmt, da der DirSync damit ein Matching macht (Siehe auch


DirSync reaktivieren

Set-ADSyncScheduler `
   -SyncCycleEnabled:$true
Start-ADSyncCycle `
   -PolicyType Delta

Nun sollte das Feld bereitet sein, dass der DirSync das neu im OnPremise-AD angelegte Konto in die Cloud replizieren kann. Dank der Mailadresse

Ich habe mit zu jedem Schritt mit "GET-MSOLUSER" die Eigenschaften des Benutzers anzeigen lassen. Folgende Felder haben sich geändert:

Feld Ausgangsobjekt Durch DirSync gelöscht Nach
Recover-MSOLUser
Nach
Set-MSOILUser
-immutableID ""
Nach DirSync Match 

ExtensionData

System.Runtime.Serialization.Extension.DataObject

AlternateEmailAddresses

{}

{}

{}

{}

{}

AlternateMobilePhones

{}

{}

{}

{}

{}

AlternativeSecurityIds

{}

{}

{}

{}

{}

BlockCredential

False

False

False

False

False

City

CloudExchangeRecipientDisplayType

1073741824

1073741824

1073741824

1073741824

1073741824

Country

Department

DirSyncProvisioningErrors

{}

{}

{}

{}

{}

DisplayName

user6

user6

user6

user6

user6

Errors

Fax

FirstName

user6

user6

user6

user6

user6

ImmutableId

OgXZ+PUtOkOrY2Ea8NS16g==

OgXZ+PUtOkOrY2Ea8NS16g==

OgXZ+PUtOkOrY2Ea8NS16g==

 

eWhqldRfMkW8kQv337THoA== 

IndirectLicenseErrors

{}

{}

{}

{}

{}

IsBlackberryUser

False

False

False

False

False

IsLicensed

True

True

True

True

True

LastDirSyncTime

23.05.2016 09:34:00

$null

$null

$null

23.05.2016 10:50:19

LastName

LastPasswordChangeTimestamp

23.05.2016 09:29:24

23.05.2016 09:29:24

23.05.2016 09:29:24

23.05.2016 09:29:24

23.05.2016 09:29:24

LicenseReconciliationNeeded

False

False

False

False

False

Licenses

{carius:ENTERPRISEPACK}

LiveId

1003BFFD9078E2A6

1003BFFD9078E2A6

1003BFFD9078E2A6

1003BFFD9078E2A6

1003BFFD9078E2A6

MSExchRecipientTypeDetails

MobilePhone

ObjectId

34a7a955-d50f-4cfd-a7a9-2a5b076976e2

Office

OverallProvisioningStatus

Success

PendingInput

PendingInput

Success

Success

PasswordNeverExpires

True

True

True

True

True

PasswordResetNotRequiredDuringActivate

True

True

True

True

True

PhoneNumber

PortalSettings

PostalCode

PreferredLanguage

ProxyAddresses

{smtp:user6@carius.onmicrosoft.com, SMTP:user6@carius.de}

ServiceInformation

{}

{}

{}

{}

{}

SignInName

User6@carius.de

User6@carius.de

User6@carius.de

User6@carius.de

User6@carius.de

SoftDeletionTimestamp

$null

23.05.2016 10:34:05

$null

State

StreetAddress

StrongAuthenticationMethods

{}

{}

{}

{}

{}

StrongAuthenticationPhoneAppDetails

{}

{}

{}

{}

{}

StrongAuthenticationProofupTime

StrongAuthenticationRequirements

{}

{}

{}

{}

{}

StrongAuthenticationUserDetails

StrongPasswordRequired

True

True

True

True

True

StsRefreshTokensValidFrom

29.04.2015 00:38:12

23.05.2016 09:29:24

23.05.2016 09:29:24

23.05.2016 09:29:24

23.05.2016 09:29:24

Title

UsageLocation

DE

DE

DE

DE

DE

UserLandingPageIdentifierForO365Shell

UserPrincipalName

User6@carius.de

User6@carius.de

User6@carius.de

User6@carius.de

User6@carius.de

UserThemeIdentifierForO365Shell

UserType

Member

Member

Member

Member

Member

ValidationStatus

Healthy

Healthy

Healthy

Healthy

Healthy

WhenCreated

29.04.2015 00:38:12

29.04.2015 00:38:12

29.04.2015 00:38:12

29.04.2015 00:38:12

29.04.2015 00:38:12

 

Achtung
Ich habe nach dem "Recover" ein paar Minuten gewartet und mit erstaunen zu erkennen, dass DirSync das gerade wiederhergestellte Objekte einfach wieder entfernt hat. Der DirSync "kümmert" sich also um jedes Objekt, welches in der Cloud mit einer "ImmutableID" versehen ist. Insofern wäre dieser Weg nur gangbar, wenn es mir gelingt die ImmutableID an dem gelöschten Objekte zu entfernen.

Interessant ist dabei, dass das Office 365 Objekt fast komplett erhalten bleibt. Sowohl die Mailadressen aber auch die Mitgliedschaften in Office 365-Gruppen bleiben erhalten. Auch die Office 365 Lizenz und sogar administrative Berechtigungen sind nach der Wiederherstellung wieder vorhanden. Einzig die Mitgliedschaft in über DirSync verwaltete AD-Gruppen ist natürlich nicht mehr gegeben. Durch das Löschen des Objekts im lokalen OnPremise-AD ist das Benutzerobjekt dort auch aus den AD-Gruppen entfernt worden und der DirSync wurden die Gruppenmitgliedschaften natürlich auch in der Cloud aktualisiert. Durch die Neuanlage bzw. Wiederherstellung des Benutzers "On-Premise" und die Aufnahme in die Gruppen werden die Mitgliedschaften aber ebenfalls auch wieder in der Cloud aktualisiert. Insofern ist der Benutzer zumindest in der Cloud wieder komplett hergestellt.

Etwas anders sieht das natürlich "OnPremise" aus, wenn der Benutzer nicht über den Papierkorb wieder hergestellt, sondern neu angelegt wurde. Mit einer neuen SID und neuer ObjectGUID etc. ist er natürlich nicht mehr das gleiche Objekt. Auch könnten ihm OnPremise einige LDAP-Einstellungen fehlen, die auch in der Cloud Auswirkungen haben. Diese Beschreibung gilt daher nur für den vereinfachten Fall und z.B. nicht, wenn Sie Exchange oder Skype for Business im Hybrid Mode betreiben. Hier sind sicher noch einige weitere Einstellungen zu tätigen.

Wiederverbinden mit AD-Papierkorb

Seit Windows 2008R2 gibt es ja den AD-Papierkorb, ob den Objekte doch etwas einfacher wieder zurück geholt werden können. Zwar kann ein Administrator auch vorher versuchen, Objekte auf dem "Deleted Objects"-Container zurück zu holen. Aber dabei gehen doch einige Informationen des Benutzers verloren. Mittlerweile sollten aber alle Windows 2003 DCs und älter wirklich Geschichte sein und es kein Problem sein, den Forest auf dem Windows 2008R2-Mode zu betreiben und damit von den Vorteilen des AD-Papierkorbs zu profitieren.

  • AD User Onpremise anlegen
    Ich habe lokal einen Benutzer angelegt, eine Mailadresse verpasst und in ein paar Gruppen aufgenommen
  • DirSync abwarten
    Der Verzeichnisabgleich hat den Benutzer in Office 365 angelegt
  • AD User gelöscht
    Dann haben ich den Benutzer im OnPremise-AD wieder gelöscht
  • DirSync löscht Cloud User
    Wie zu erwarten wurde das Konto in der Cloud ebenfalls in den Papierkorb der Cloud verschoben
  • "Undelete" OnPremise
    Nun habe ich vom lokalen AD-Papierkorb gebraucht gemacht und das Konto wieder hergestellt. Dank dem AD-Papierkorb kam nicht nur die Mailadresse mit, sondern auch die Gruppenmitgliedschaften wurden komplett wieder hergestellt
  • DirSync aktualisierte das Cloud-Objekt
    Natürlich war ich nun gespannt, ob der DirSync ein neues Objekt anlegt oder das bestehende "gelöschte" Objekt wieder rettet. Der nächste DirSync hat tatsächlich das Konto aus dem Office 365 Papierkorb wieder direkt hergestellt.

Hier hat Microsoft mit dem ADSync eine sehr elegante Möglichkeit geschaffen, ein irrtümlich im lokalen Forest gelöschtes Objekt schnell wieder bereit zu stellen.

Wiederverbinden mit "Tombstone"

Leider kann man den AD-Papierkorb nicht mehr rückgängig machen. Denn erst danach ist mir aufgefallen, dass man auch ohne AD Papierkorb verschiedene AD-Objekte eines lokalen Windows 2003 Active  Directory wieder "entlöschen" kann. Wenn Benutzer gelöscht werden, dann verschwinden sie ja nicht sofort komplett aus der Datenbank, sondern werden "als gelöscht" markiert aber 60-120 Tage noch mitgeführt, damit alle Domain Controller diesen "Löschbefehl" auch lernen können. Erst nach Ablauf dieser "Tombstone"-Zeit löscht dann jeder DC für sich das Objekt.

Mit Tools wie ADRestore (Sysinternals) oder Lazarus oder auch LDP können Administratoren solche Konten aus dem "Deleted Object"- Container wieder herausholen. Der große Vorteil gegenüber einer Neuanlage ist, dass die ObjectGUID als auch die SID erhalten bleibt. Speziell die ObjectGUID ist ja im Hinblick auf die ImmutableID wichtig.

Ich könnte mir durchaus vorstellen, dass auch ein Undelete eines Objects über diesen Weg dazu führt, dass der DirSync das Objekt ebenfalls wieder aus dem Office 365 Papierkorb zurück holt. Allerdings werden Sie dann natürlich Gruppenmitgliedschaften und nicht gesicherte AD-Felder natürlich noch nacharbeiten müssen.

Weitere Links

Einen per DirSync in der Cloud angelegten Benutzer können Sie nicht einfach löschen.