Winter Scripting Games 2008 – I’m a winner!

Das hat mich heute per Mail erreicht:

Hey, Matthias. I’m pleased to inform you that you’ve won one of the highly-coveted Dr. Scripto bobblehead dolls as part of the recently-completed 2008 Winter Scripting Games. …

In addition, our records indicate that you earned at least one Scripting Games certificate of Excellence. If you could let us know the name you’d like printed on the certificate we’ll get that out to you as well.   Incidentally, we’d like to also take this opportunity to thank you for participating in the Games; we really appreciate it. We hope you had a good time playing along, and we hope to see you back next year as well.    

Thanks!    

 

Microsoft Scripting Guy   

 

Von dem Dr. Script bobblehead BobbleHead gab’s dieses Jahr 250 Stück zu gewinnen. Und einer geht an mich! Cool. Nächstes Jahr bin ich wieder dabei. 

 

Winter Scripting Games 2008

Scripting Games 2008 

 

In den letzten Wochen habe ich bei den Microsoft Scripting Games 2008 spaßeshalber mal mitgemacht. Es waren ein paar knifflige Aufgaben dabei, aber alles machbar. Wen es interessiert, hier der Link zu den 2008 Scripting Games.

Update am 06.03.2008: 100 Points! bei den Advanced Scriptern, (nur 80? bei den Beginners? Ouups!) Egal, Spaß hat’s trotzdem gemacht!

Bis nächstes Jahr!

Active Directory FSMO Roles per Script ermitteln

Da unter Windows 2003 x64 der Replmon nicht mehr dabei ist, habe ich mir notgedrungen endlich ein Script geschrieben, welches mir schnell eine Übersicht liefert, welche Server gerade welche FSMO Rolle beheimaten.

Im Script muss der Domaincontroller DNS-Servername eingetragen werden. „Active Directory FSMO Roles per Script ermitteln“ weiterlesen

Active Directory Benutzer in einen Exchange öffentlichen Ordner importieren

Eigentlich ist das Globale Adressbuch von Outlook genau der Inhalt aller Mailbenutzer aus dem Active Directory. Ich hatte allerdings einen Kunden, der VoIP verwendet, und die Rufnummern aus dem globalen Adressbuch verwenden wollte. Da die TAPI Schnittstelle das aber nicht unterstützt (im globalen Adressbuch sind es keine IPM.Contact Elemente), sollten die ADS User in einen öffentlichen Ordner importiert werden. Dort sind die Kontakte dann IPM.Contact Elemente, mit denen konnte VoIP wieder was anfangen.

Über den Sinn/Unsinn läßt sich natürlich wieder diskutieren (haben wir auch 🙂 ). Der Sinn solcher Kundenwünsche muss sich mir ja nicht immer erschließen, es reicht ja, wenn der Kunde weiß was er damit machen will. Außerdem war es mal eine neue Herausforderung, das ganze via Script zu machen. „Active Directory Benutzer in einen Exchange öffentlichen Ordner importieren“ weiterlesen

Einen deaktivierten Benutzer wieder aktivieren (oder anders herum)

Ein deaktivierter Benutzer kann im ADS sehr einfach scriptgesteuert aktiviert werden. Es geht auch anders herum; so dass ein Benutzer via Script einfach deaktiviert wird. Es gibt mehrere Provider mit denen man das durchführen kann, da ich aber quick and dirty jetzt diese Funktion brauche, habe ich mich für den WinNT Provider entschieden. Da muss ich nur den samAccountNamen haben, schon kann ich loslegen. Wenn es über LDAP gemacht werden soll, dann muss ich den kompletten Distinguished Namen des Objektes kennen. Das ist mir jetzt aber zu viel Aufwand, das jedesmal zu ermitteln.

Über Parameter kann man das Script ganz einfach erweitern. z.B. kann über eine Inputbox der samAccountName abgefragt werden.

Set objUser = GetObject(„WinNT://NETBIOSDOMÄNE/aetest“)

objUser.AccountDisabled = False
objUser.SetInfo

Msgbox „Account wurde aktiviert!“,vbokonly+vbinformation,“Enable Account“
 

 

Bei Scripten gilt immer: Erst den Quellcode lesen, dann ausprobieren.

 

CommonDialog mit VB Script verwenden

Mit VB Script kann auch auf das CommonDialog Objekt von Windows zugegriffen werden. Es stehen nicht alle Methoden zur Verfügung, aber zum Auswählen von Dateien reicht es allemal!

Mit VB Script kann auch auf das CommonDialog Objekt von Windows zugegriffen werden. Es stehen nicht alle Methoden zur Verfügung, aber zum Auswählen von Dateien reicht es allemal! „CommonDialog mit VB Script verwenden“ weiterlesen

extraColumns in der ADS MMC

Die Spalten, die in der ADS MMC angezeigt werden, können seit Windows 2003 ADS durch eigene Spalten ergänzt werden. Es können (fast) alle Attribute von allen Objekten hinzugefügt werden. Das macht natürlich nur Sinn, wenn die Werte auch brauchbare Inhalte haben. Ich verwende typischerweise eigene Attribute, die mit Werten beim Starten des Computers oder beim Anmelden eines Benutzers durch Scripte geschrieben werden.

Kleines Beispiel: Ein Kunde wollte die MAC Adresse der primären Netzwerkkarte dort stehen haben, um WOL zu verwenden. Es kann aber auch einfach nur die Betriebssystemversion/bezeichnung hinzugefügt werden. Hier die Kurzversion, wie’s geht: (Erfahrung im ADS wird vorausgesetzt! Wenn nicht, lass‘ einfach die Finger davon, sonst kannst Du mehr kaputt machen, als dir lieb ist!)

The Add/Remove Columns dialog box displays only the columns that are contained in the extraColumns attribute of the displaySpecifier object of the container type that is being displayed. If the extraColumns attribute does not contain any values, the Add/Remove Columns dialog box will display a fixed set of columns. A copy of the fixed set of columns is contained in the extraColumns attribute of the default-Display object.   To add one or more columns to the list of columns for a specific object, you must copy all of the extraColumns values from the default-Display object to the target object and then add the custom columns. If you specify the extraColumns attribute on a given class, then that class will use those columns and will not merge them with the columns that are specified in the default-Display class. Therefore, further changes to the default-Display class will have no effect on that object. To display a custom column for all container types that do not have any custom columns registered, add a value for the column to the extraColumns attribute of the default-Display object.

Am Beispiel:

For example, to add a column that will display the canonical name for objects in an organizational unit, a value for the canonicalName attribute is added to the extraColumns attribute of the organizationalUnit-Display object in the display specifiers container. The string added to the extraColumns attribute of the organizationalUnit-Display object will look like the following.
 
  canonicalName,Canonical Name,0,150,0

Aufbau des Attributes extraColums im Allgemeinen:

     Ldapdisplayname , column header , default visibility , width , unused    

 

Zugriff auf Active Directory Daten

Welche Möglichkeiten gibt es, auf die ADS Informationen zuzugreifen?

  • ds-Programme von Microsoft (sind bei Windows dabei, wie z.B. dsadd.exe usw.)
  • ADS Management Tools (Users and Computers, usw.)
  • adsiedit.msc, Attribut Editor von Microsoft
  • ADODB, Active Data Objects for Data Bases, also via Microsoft Provider wie z.B. „ADsDSOObject“
  • ADSI-SDK Schnittstelle (ADSI 2.5)

Ich bevorzuge die beiden Varianten ADODB und ADSI-Schnittstelle. Diese Varianten kann ich Scriptieren oder in Programme einbauen. „Zugriff auf Active Directory Daten“ weiterlesen