AD-Attribute in Umgebungsvariablen - the vbs way
Viele Programme, die in einer Active-Directory Umgebung verwendet werden, funktionieren nur dann gut, wenn sie mit Daten aus dem AD arbeiten können. Der Zugriff von diversen Dritthersteller-Programmen ist aber immer mit Vorsicht zu genießen. Um solche Diskussionen gar nicht erst anzufachen, bieten einige Programme die Möglichkeit über die Windows eigenen Umgebungsvariablen auf Daten zuzugreifen. Nun stellt sich nur eine Frage:Wie bekomme ich die Daten vom AD in die lokalen Umgebungsvariablen?
Das Szenario
Stellen wir uns einmal folgendes vor: Wir haben ein Programm, dass auf den DisplayName, die E-Mailadresse und den Titel eines Benutzers zugreifen möchte. Die Umgebungsvariablen sollen entsprechend ad_displayName, ad_email und ad_title heißen.
Die LDAP-Abfrage
Über CreateObjekt("ADSysteminfo") und GetObject(LDAP-ABFRAGE) bekommt man diverse Informationen aus dem AD. In unserem Fall sieht das wie folgt aus:
Set strSysInfo = CreateObject("ADSysteminfo") Set ldapUser = GetObject("LDAP://" & strSysInfo.Username)
Der Befehl strSysInfo.Username liefert hier den aktuell angemeldeten User zurück. GetObject(...) liefert dann das komplette AD-Objekt des Benutzers zurück. Über ldapUser.department bekommt man jetzt zum Beispiel die Abteilung des Benutzers zurück gegeben. Für unser Vorhaben benötigen wir nun folgende 3 Befehle:
displayName = ldapUser.displayName email = ldapUser.mail title = ldapUser.title
Environment Variables und VB-Skript
Um in VB auf Umgebungsvariablen zugreifen zu können, benötigt man zuerst folgende Befehle:
Set shellObject = CreateObject("WScript.Shell") Set environment = shellObject.Environment("USER")
In shellObject.Environment(...) kann USER oder SYSTEM einsetzen. Entsprechend werden die Umgebungsvariablen für den Benutzerkontext oder Systemkontext gesetzt. Variablen im Benutzerkontext werden bei der Abmeldung gelöscht.
Erzeugen und setzen einer Umgebungsvariable geht nun in einem Schritt:
environment("ad_displayName") = displayName
Für E-Mailadresse und Titel funktioniert das Ganze analog:
environment("ad_email") = email environment("ad_title") = title
- ASP.NET 1
- Active Directory 41
- Administration Tools 1
- Allgemein 60
- Backup 4
- ChatBots 5
- Configuration Manager 3
- DNS 1
- Data Protection Manager 1
- Deployment 24
- Endpoint Protection 1
- Exchange Server 62
- Gruppenrichtlinien 4
- Hyper-V 18
- Intune 1
- Konferenz 1
- Künstliche Intelligenz 7
- Linux 3
- Microsoft Office 11
- Microsoft Teams 1
- Office 365 11
- Office Web App Server 1
- Powershell 21
- Remote Desktop Server 1
- Remote Server 1
- SQL Server 8
- Sharepoint Server 12
- Sicherheit 1
- System Center 10
- Training 1
- Verschlüsselung 2
- Virtual Machine Manager 1
- Visual Studio 1
- WSUS 7
- Windows 10 12
- Windows 8 9
- Windows Azure 4
- Windows Client 1
- Windows Server 24
- Windows Server 2012 7
- Windows Server 2012R2 15
- Windows Server 2016 7
- Windows Server 2019 2
- Windows Server 2022 1
- Zertifikate 4