# Batch-Variable aus anderer Domäne oder keymgr.dll



## MrTylerDurden (14. Februar 2012)

Hallo!

Kennt jemand eine Möglichkeit, wie man per Systemvariable (bspw. %username%) oder Scriptariable den Benutzernamen aus einer anderen verbundenen Domäne angeben kann?

Ich hoffe, ich mach's verständlich:

- Viele Clients im Domänenbetrieb (Anmeldedomäne)
- Pfade von Netzlaufwerken befinden sich in anderer Domäne (Netzlaufwerkdomäne)
- Mappen der Netzlaufwerke für alle Clients per eigenem Programm
- Anmeldung an Netzlaufwerkdomäne geschieht per keymgr.dll

Nun muss per Batch, die jedem Nutzer zugeschickt und in den Autostart geschoben werden soll, kurzfristig ein zusätzliches Netzlaufwerk verbunden werden. Der Pfad dieses zusätzlichen Netzlaufwerkes enthält den Benutzernamen, mit dem der Nutzer per keymgr.dll mit der Netzlaufwerkdomäne verbunden ist.

Ich kann nicht für jeden Client die individuelle Batch mit seinem Benutzernamen für die Netzlaufwerkdomäne im Pfad erstellen, zumal ich ihn nicht immer weiß. Deshalb der Weg über eine Variable, wie %username%. Ich brauche aber hier aber wie gesagt den Benutzernamen in der Netzlaufwerkdomäne, nicht in der Anmeldedomäne.

MfG


----------



## Dimenson (19. Februar 2012)

Hallo,

ja wenn die Usernames ja gleich aussehen, kannst du eigentlich die Variable %username% nutzen.
Wenn diese aber dennoch unterschiedlich sind, kommst du um eine LDAP Abfrage nicht drum weg. 
Hier mal ein Beispiel :
http://www.faq-o-matic.net/2008/07/04/mitglieder-einer-ad-gruppe-mit-zusatzdaten-ausgeben/

Leider kenne ich mich da zu wenig aus wie es aussieht mit einer Abfrage ausserhalb der eigenen Domäne. 
Ich kann mir vorstellen das du die Domänen untereinander Vertrauenwürdig machen musst.

Wie gesagt nur Vermutungen vllt hilft dir ja weiter.

Gruß Dimenson


----------



## MrTylerDurden (19. Februar 2012)

Dimenson hat gesagt.:


> ja wenn die Usernames ja gleich aussehen, kannst du eigentlich die Variable %username% nutzen.



Danke für die Antwort. Die Nutzernamen sind leider unterschiedlich. Wäre es nicht so, müsste ich abgesehen vom Passwort die Anmeldung auch nicht mit der keymgr.dll regeln.

Anmeldedomäne:
Benutzername = 12345678
Passwort = PasswortInAnmeldedomäne

Win + R: control keymgr.dll:
Server: Servername.Netlaufwerkdomäne
Name: NutzernameInNetzlaufwerkdomäne@Netlaufwerkdomäne
Passwort: PasswortInNetzlaufwerkdomäne

Batch im Autostart:
NET USE x: \\server.Netlaufwerkdomäne\NutzernameInNetzlaufwerkdomäne\freigabeordner
NET USE y: \\server.Netlaufwerkdomäne\blablabla\freigabeordner

Und den NutzernameInNetzlaufwerkdomäne hätte ich gern als Variable für die Batch im Autostart des Nutzers in der Anmeldedomäne. Die könnte ich dann verschicken und jeder legt sie in seinen Autostart.

Die bidirektionale transitive Vertrauensstellung ist aber gesetzt.
Leider bin ich nicht dazu berechtigt, die Anmeldedomäne zu administrieren, lediglich die Netzlaufwerkdomäne. Ansonsten müsste ich ja auch nicht Netzlaufwerke für Nutzer der Anmeldedomäne per Batch verbinden, sondern könnte es direkt im AD der Anmeldedomäne tun. 

Mit den DomAdmins der Anmeldedomäne kann ich auch nicht in der Form kommunizieren (vertragliche Regelungen ... naja).


----------



## Dimenson (19. Februar 2012)

Hallo,

authentifizierst du dich mit den dementsprechenden benutzer schon an der Netzwerkdomäne ?

Dann kann evtl wmi weiterhelfen:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_LoggedOnUser",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_LoggedOnUser instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Antecedent: " & objItem.Antecedent
    Wscript.Echo "Dependent: " & objItem.Dependent
Next

Speicher den Code als VBS Datei. und führe sie mit Win+R cscript deine.vbs aus. 
Vielleicht wird da der dementsprechende benötigte Name angezeigt.


----------



## MrTylerDurden (19. Februar 2012)

Dimenson hat gesagt.:


> authentifizierst du dich mit den dementsprechenden benutzer schon an der Netzwerkdomäne ?



Hallo!

Ja, genau das. Durch die NET USE werden die Netzlaufwerke beim WinStart mit den Daten aus der keymgr.dll sofort verbunden. Das musste anfangs bei jedem Nutzer (mehrere Hundert) manuell eingerichtet werden. Das drückt zwar den Traffic morgens kurzzeitig enorm hoch, muss aber sein. Da sonst Applikationsverknüpfungen, die auf einen Netzlaufwerkpfad zeigen, nicht funktionieren. Das liegt daran, dass Netzlaufwerke zwar gemappt sind, aber nicht verbunden. Der Nutzer müsste kurz im Explorer ein Netzlaufwerk öffnen. Um das zu umgehen, liegt für jeden Benutzer die Batch im Autostart (Windows Bug - Ticket ist schon erstellt - nicht nur von uns).

OK, danke. Ich probier's mal aus.

Danke!


----------

