Paket zum Verschieben eines PCs in OU im AD

Alexander Knopp

9

min Lesezeit

Wer die Verwaltung und die Gruppenzuweisung seine Softwareverteilung in DSM7 regelt, muss oft auch noch im Active Directory (AD) ran.

Inhaltsverzeichnis

Wer die Verwaltung und die Gruppenzuweisung seine Softwareverteilung in DSM7 regelt, muss oft auch noch im Active Directory (AD) ran und den Computer in seine entsprechende Organisation Unit (OU) verschieben. Das ist zwar nur ein kleiner Klick, doch dieser kann einem erspart bleiben.

Gehen wir z.B. davon aus, das wir eine Active Directory OU Struktur haben, die unseren Standort angibt und unter diesem danach die Hardware in Computer, Notebooks und Server aufteilt.

Bei neuen Computern müssten wir nun erst herausfinden, welchem Hardwaretyp unser neuer Computer entspricht und ihn dann händisch in die entsprechende OU verschieben.Haben wir allerdings in DSM7 eine dynamische Hardwaregruppe angelegt, filtern darunter z.B. nach Hersteller und danach nach Modell können wir der Gruppe Dell – Latitude E6320 ein Paket zuweisen, welches die PCs dieser Gruppe bei Ausführung in die AD OU Notebooksverschiebt. Genauso können wir davon ausgehen, dass alle PCs der Gruppe HP – G5434de Desktop PCs sind und somit z.B. in die AD OU Computer gehören. Also weisen wir G5434de das  entsprechende Paket zu.

Doch welches Paket eigentlich? Dazu jetzt:

Wir erstellen ein neues e-Script Package, gehen ins Projektverzeichnis und fügen folgenden Code in die Script.inc ein:

!---------------------------------------------------------------------------------------------------------------

!Beschreibung: Script zum Verschieben eines PCs in eine OU im AD

!Voraussetzungen: Servicebenutzer muss Domänenadmin sein

!Autor: Joe Glockner (IDERI GmbH) (www.ideri.com)

!Anmerkunden: VB-Script basiert auf Script von MS TECHNET

!(http://blogs.technet.com/b/heyscriptingguy/archive/2006/06/23/how-can-i-move-a-computer-from-an-unknown-ou-into-a-known-ou.aspx)

!---------------------------------------------------------------------------------------------------------------

!Variablen

!---------------

!Domain hier eintragen: (z. B Microsoft.com -> _Domain01: Microsoft / _Domain02: com)

Set('_Domain01','ideri')

Set('_Domain02','world')

!Ziel OU hier eintragen: (von links nach rechts (tiefste OU nach links))

!Bsp: OU=UNTERSTEOU,OU=MITTLEREOU,OU=HÖCHSTEOU

Set('FinalAdPath','OU=COMPUTER,OU=CHICAGO')

!

!Script

!---------------

Set('VBFile','%windir%\moveou.vbs')

Delete('%VBFile%')/F/TS

!

Set('_Domain','%_Domain01%.%_Domain02%')

Set('RealFinalAdPath','%FinalAdPath%,DC=%_Domain01%,DC=%_Domain02%')

!

ModifyOemEx('%VBFile%','','','',moAppend+moOverwriteExisting)

 On Error Resume Next



 Const ADS_SCOPE_SUBTREE = 2



 Set objOU = GetObject("LDAP://%RealFinalAdPath%")



 Set objConnection = CreateObject("ADODB.Connection")

 Set objCommand =   CreateObject("ADODB.Command")

 objConnection.Provider = "ADsDSOObject"

 objConnection.Open "Active Directory Provider"

 Set objCommand.ActiveConnection = objConnection



 objCommand.Properties("Page Size") = 1000

 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE



 objCommand.CommandText = _

     "SELECT ADsPath FROM 'LDAP://dc=%_Domain01%,dc=%_Domain02%' WHERE objectCategory='computer' " & _

         "AND Name='%Computername%'"

 Set objRecordSet = objCommand.Execute



 objRecordSet.MoveFirst



 Do Until objRecordSet.EOF

     strADsPath = objRecordSet.Fields("ADsPath").Value

     objOU.MoveHere strADsPath, vbNullString

     objRecordSet.MoveNext

 Loop

EndProc/TS

!

!Falls Servicebenutzer kein Domänenadmin ist CallScript auskommentieren und RunAs aktivieren.

!Zum Schluss noch bei RunAs einen User mit Domänenadminrechten hinterlegen.

!---------------

CallScript('%VBFile%')/TS

!RunAs('%WINSYSDIR%\cscript.exe ','%VBFile%','Domänenadmin','','1',WaitForExecution+UndoneContinueParentScript)


Zurück im Scripteditor sollte das Ganze dann so aussehen:

Und was genau macht dieses Paket?
Ohne Anpassung auf jeden Fall nichts von Wert. Denn zuerst müssen wir die Variablen auf unsere Umgebung anpassen. Fangen wir mit der Domain an:

Wie sie erkennen können heißt unsere Domäne „ideri.world“. Dementsprechend haben wir die Variablen _Domain01 und _Domain02angepasst.


Danach geht es weiter zur Variable FinalAdPath. Hier geben wir die gewünschte Ziel OU im AD an. Dabei müssen wir darauf achten, dass die OU Struktur richtig abgebildet ist, also jede OU bis zur Ziel-OU durch ein „OU=IhreOU“ und danach durch ein Komma getrennt in der Variable angegeben ist. Dabei muss die tiefste OU (also die Ziel-OU) ganz links geschrieben werden. Von dort an geht es aufsteigend weiter.
Beispiel:

Wir wollen, dass einen Computer in ideri.world-CHICAGO-Computer verschoben wird. Also geben wir bei _Domain01„ideri“, bei _Domain02 „world“ und bei FinalAdPath„OU=Computer,OU=CHICAGO“ an. Wollen wir den Computer in ideri.world-CHICAGO-Computer-Desktops verschieben müssten wir bei FinalAdPath„OU=Desktops,OU=Computer,OU=CHICAGO“ eingeben.

Nun kann es losgehen:
Das Paket erstellt ein Visual Basic-Script unter C:\Windows\moveou.vbs , welches auf einem Script von MS Technet basiert. (Das komplette Script und dessen Beschreibung finden Sie hier). Dieses durchsucht das AD nach dem entsprechenden Computernamen und verschiebt ihn in die angegebene Ziel-OU.

ACHTUNG:

Von Haus aus wird das Script mit dem CallScript-Befehl mit dem NI Service Benutzerausgeführt. Dieser muss allerdings Domänenadmin sein, damit der Computer im AD verschoben werden kann. Sollte bei Ihnen der Service Benutzer keine Domänenadmin-Rechte besitzen, sollten Sie den CallScript-Befehl auskommentieren und dafür den darunter stehenden RunAs-Befehl verwenden. Dort muss jedoch noch ein Benutzer mit Domänenadmin-Rechten angeben und das Kennwort hinterlegt werden. Außerdem sollte der RunAs noch als computerbezogener Befehl geflaggt werden, damit dieser nicht jedes Mal beim Starten des AutoInstallers ausgeführt wird.

Hier finden Sie unsere Antworten

Ähnliche Beiträge

Softwareverwaltung optimieren nach der DSM Migration mit IDERI pace

Erfahren Sie, wie IDERI pace die Softwareverwaltung nach der DSM Migration in Sachen Sicherheit, Kontrolle und Effizienz optimiert.

Vielfältige Potenziale: Umzug von Ivanti DSM zu VMware Workspace One

Erhalten Sie alle Informationen zum Umzug von Ivanti DSM zu VMware Workspace One und die Potenziale dieser Softwaremigration.

DSM 7 – Dynamische Gruppen Automatisch befühlen + Option für die Manuelle zuordnung

Das Befüllen von dynamischen Gruppen, z.B. anhand des PC Namens ist in der Regel nicht sehr schwer und sollte leicht umzusetzen sein.

Server 2008 R2 Features und Rollen hinzufügen Script

Ein MS Server Betriebssystem mit DSM 7 auszurollen stellt kaum ein Problem dar.

DSM 7.2.1 released

Das Update beseitigt einige Fehler und bringt noch ein paar Neuerungen. Hier seinen mal nur ein paar genannt.

DSM 7.0.2 – Probleme beim Erstellen von Boot Environments

Als wir neulich bei einem Kunden waren, bei dem wir eine komplett neue Umgebung unter DSM 7.0.2 erstellen sollten, stießen wir auf erhebliche Probleme beim Vers

DSM 7.0 – Mehrere Policy-Ziele bereits beim „Paket zuweisen“

Seit DSM Version 7.1 kann man beim Zuweisen eines Pakets mehrere Policy-Ziele auswählen.

DSM 7 – Undokumentierte Scriptbefehle freischalten

In DSM7 gibt es einige Befehle mehr, als man in der Packaging Workbench sehen kann.

Durch Klicken auf „Alle Cookies akzeptieren“ stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Navigation auf der Website zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingbemühungen zu unterstützen. Weitere Informationen finden Sie in unserer Datenschutzerklärung.