Powershell - AD aus XML updaten
Hallo Leute
Ich habe eine xml-Datei, in welcher alle Active Directory Benutzer drin sind, bei Unterschieden soll die AD aus xml angepasst werden.
Die XML kann ich lesen ;
Hier lese/ändere ich die Abteilung:
Ich weiss nicht wie ich diese zwei "Datenmengen" vergleichen kann,
wenn zum Beispiel ein User von Dr. zum Prof. Dr. wird
(ich bin es offenbar nicht )
Danke & Gruss
Ich habe eine xml-Datei, in welcher alle Active Directory Benutzer drin sind, bei Unterschieden soll die AD aus xml angepasst werden.
Die XML kann ich lesen ;
$xml = [xml](get-content -Encoding UTF8 d:\adUser.xml)
$xml.Personal.Mitarbeiter
Hier lese/ändere ich die Abteilung:
$testusers = Get-ADUser -filter * -SearchBase "OU=test"
foreach($testuser in $testusers)
{
// if statement ?
$testuser.title = "Dr."
Set-ADUser -Instance $testuser
}
Ich weiss nicht wie ich diese zwei "Datenmengen" vergleichen kann,
wenn zum Beispiel ein User von Dr. zum Prof. Dr. wird
(ich bin es offenbar nicht )
Danke & Gruss
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 287530
Url: https://administrator.de/contentid/287530
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
lade jeweils die Eigenschaften der XML und aus dem UserObject mit select-object in ein Objekt, und diese beiden Objekte vergleichst du dann mit Compare-Object gibt es beim Ergebnis einen Unterschied machst du ein Update aller Eigenschaften des aktuellen Users aus der XML.
Willst du einzelne Eigenschaften auf Veränderung prüfen um nur diese upzudaten, musst du sie mit einer Schleife durchlaufen und auf Gleichheit prüfen.
Alle Member einer Eigenschaft bekommst du mit gm -Membertype Noteproperty für das AD Objekt und mit gm -Membertype Property für das XML-Objekt, darüber eine Schleife gelegt, fertig.
Gruß grexit
lade jeweils die Eigenschaften der XML und aus dem UserObject mit select-object in ein Objekt, und diese beiden Objekte vergleichst du dann mit Compare-Object gibt es beim Ergebnis einen Unterschied machst du ein Update aller Eigenschaften des aktuellen Users aus der XML.
Willst du einzelne Eigenschaften auf Veränderung prüfen um nur diese upzudaten, musst du sie mit einer Schleife durchlaufen und auf Gleichheit prüfen.
Alle Member einer Eigenschaft bekommst du mit gm -Membertype Noteproperty für das AD Objekt und mit gm -Membertype Property für das XML-Objekt, darüber eine Schleife gelegt, fertig.
Gruß grexit
Du musst die Daten bei beiden expandieren sonst vergleicht Compare-Object auch die Datentypen und Eigenschaften
select -Expand SamAccountName
Jedoch, wie überschreibe ich jetzt den Ziel-Wert welcher unterschiedlich ist?
Hab ich doch oben schon geschrieben... zum Überprüfen von Einzelwerten musst du statt mit Compare-Object zu arbeiten eine Schleife über die Properties bauen und dann mit der jeweiligen Eigenschaft des AD Objekts vergleichen, dann kannst ein Set-ADUser maxmuster -Replace @{"Eigenschaft"="Wert"} machen.