Homelaufwerk für User (Standortwechsel)
Benutzer wechselt regelmäßing Standort. Homelaufwerk soll wenn am Standort ein Windows-2003-Server vorhanden ist vom Server gemappt werden, ansonsten lokal
Wir haben im Unternehmen mehrere Standorte. Nicht an jedem Standort befindet sich ein Server. Der Domaincontroller ist nur an einem Standort vorhanden. Somit erfolgt die Anmeldung immer am gleichen Server egal, von welchem Standort die Anmeldung erfolgt. Über AD kann dem User nur ein Homelaufwerk zur Verfügung gestellt werden.
Wenn nun dieser User den Standort wechselt, wäre es sinnvoll, wenn sich das Homelaufwerk auf dem am Standort vorhandenen Fileserver befindet (Zugriffszeit). Wir haben aber auch Standorte, an denen sich kein Server befindet (nur ein Einzelarbeitsplatz)
Frage: Gibt es eine Möglichkeit, über ein Script abzufragen, an welchem Standort sich der User anmeldet und dann dementsprechend, wenn ein Server am Standort vorhanden ist, sich sein Homelaufwerk als Y:\ von diesem Server mappt bzw. wenn kein Server vorhanden ist, ein lokales Verzeichnis als Homelaufwerk mit dem gleichen Laufwerksbuchstaben Y:\ zur Verfügung gestellt wird?
Ich bin für jeden Tip dankbar!!!!!!
Wir haben im Unternehmen mehrere Standorte. Nicht an jedem Standort befindet sich ein Server. Der Domaincontroller ist nur an einem Standort vorhanden. Somit erfolgt die Anmeldung immer am gleichen Server egal, von welchem Standort die Anmeldung erfolgt. Über AD kann dem User nur ein Homelaufwerk zur Verfügung gestellt werden.
Wenn nun dieser User den Standort wechselt, wäre es sinnvoll, wenn sich das Homelaufwerk auf dem am Standort vorhandenen Fileserver befindet (Zugriffszeit). Wir haben aber auch Standorte, an denen sich kein Server befindet (nur ein Einzelarbeitsplatz)
Frage: Gibt es eine Möglichkeit, über ein Script abzufragen, an welchem Standort sich der User anmeldet und dann dementsprechend, wenn ein Server am Standort vorhanden ist, sich sein Homelaufwerk als Y:\ von diesem Server mappt bzw. wenn kein Server vorhanden ist, ein lokales Verzeichnis als Homelaufwerk mit dem gleichen Laufwerksbuchstaben Y:\ zur Verfügung gestellt wird?
Ich bin für jeden Tip dankbar!!!!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 13402
Url: https://administrator.de/forum/homelaufwerk-fuer-user-standortwechsel-13402.html
Ausgedruckt am: 17.04.2025 um 12:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo rbpn
<font color=green>@echo off
REM *Abfragen ob per Anmeldescript am DC ein Homelaufwerk zugeordet wurde*
if exist y:\nul goto ende
REM *Versuchen vom Ersatzserver 1 ein Verzeichnis zu mounten*
if exist \\ersatzserver1\freigabe\*.* net use y: \\ersatzserver1\freigabe
if not errorlevel 1 goto ende
REM *Versuchen vom Ersatzserver 2 ein Verzeichnis zu mounten*
if exist \\ersatzserver2\freigabe\*.* net use y: \\ersatzserver2\freigabe
if not errorlevel 1 goto ende
REM *Aufgeben und ein lokales Verzeichnis mounten*
subst y: c:\pseudohome
:ende</font>
Das ist noch nicht unbedingt ausgereift, aber so in etwa sollte es funktionieren.
Es stellt sich mir aber die Frage ob der User damit zurecht kommt, wenn sich die Inhalte auf Y: immer ändern, da es "jedes mal" ein anderer Ordner ist?
Gruß Frank
<font color=green>@echo off
REM *Abfragen ob per Anmeldescript am DC ein Homelaufwerk zugeordet wurde*
if exist y:\nul goto ende
REM *Versuchen vom Ersatzserver 1 ein Verzeichnis zu mounten*
if exist \\ersatzserver1\freigabe\*.* net use y: \\ersatzserver1\freigabe
if not errorlevel 1 goto ende
REM *Versuchen vom Ersatzserver 2 ein Verzeichnis zu mounten*
if exist \\ersatzserver2\freigabe\*.* net use y: \\ersatzserver2\freigabe
if not errorlevel 1 goto ende
REM *Aufgeben und ein lokales Verzeichnis mounten*
subst y: c:\pseudohome
:ende</font>
Das ist noch nicht unbedingt ausgereift, aber so in etwa sollte es funktionieren.
Es stellt sich mir aber die Frage ob der User damit zurecht kommt, wenn sich die Inhalte auf Y: immer ändern, da es "jedes mal" ein anderer Ordner ist?
Gruß Frank
Das Script wertet das Attribut 'Standort' des Computerobjekts im Active Directory aus.
Danach könntest du mit If oder Case verzweigen und abhängig vom Wert von strLocation die entspr. Laufwerke mappen.
Ich benutze sowas zur Druckerzuweisung.
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
strDomain = WshNetwork.UserDomain
strUserName = ""
strCompName = LCase(WshNetwork.ComputerName)
Set objRootDSE = GetObject("LDAP:rootDSE")
If strContainer = "" Then
Set objItem = GetObject("LDAP:" & objRootDSE.Get("defaultNamingContext"))
Else
Set objItem = GetObject("LDAP://cn=" & strCompName & "," & strContainer & "," & objRootDSE.Get("defaultNamingContext"))
End If
strLocation = objItem.Get("location")
Danach könntest du mit If oder Case verzweigen und abhängig vom Wert von strLocation die entspr. Laufwerke mappen.
Ich benutze sowas zur Druckerzuweisung.
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
strDomain = WshNetwork.UserDomain
strUserName = ""
strCompName = LCase(WshNetwork.ComputerName)
Set objRootDSE = GetObject("LDAP:rootDSE")
If strContainer = "" Then
Set objItem = GetObject("LDAP:" & objRootDSE.Get("defaultNamingContext"))
Else
Set objItem = GetObject("LDAP://cn=" & strCompName & "," & strContainer & "," & objRootDSE.Get("defaultNamingContext"))
End If
strLocation = objItem.Get("location")
Nun Frank,
das ist nur ein Auzug aus meinem Loginscript.
Ich mache alles mit Option Explicit, daher sind natürlich die Variablen deklariert.
Auch wenn strContainer leer ist, werden die Drucker bei mir richtig zugewiesen.
Probiers aus!
Gruß
gemini
[EDIT]
Muss mich verbessern:
Frank hat natürlich Recht, strContainer muss einen Wert enthalten
So läuft es nun:
~~~~~~~~~~
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
strContainer = "ou=NameDerOU"
strCompName = LCase(WshNetwork.ComputerName)
Set objRootDSE = GetObject("LDAP:rootDSE")
Set objItem = GetObject("LDAP:" & strCompName & "," & strContainer & "," & objRootDSE.Get("defaultNamingContext"))
strLocation = objItem.Get("Location")
'MsgBox strLocation
~~~~~~~~~~
[/EDIT]
das ist nur ein Auzug aus meinem Loginscript.
Ich mache alles mit Option Explicit, daher sind natürlich die Variablen deklariert.
Auch wenn strContainer leer ist, werden die Drucker bei mir richtig zugewiesen.
Probiers aus!
Gruß
gemini
[EDIT]
Muss mich verbessern:
Frank hat natürlich Recht, strContainer muss einen Wert enthalten
So läuft es nun:
~~~~~~~~~~
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
strContainer = "ou=NameDerOU"
strCompName = LCase(WshNetwork.ComputerName)
Set objRootDSE = GetObject("LDAP:rootDSE")
Set objItem = GetObject("LDAP:" & strCompName & "," & strContainer & "," & objRootDSE.Get("defaultNamingContext"))
strLocation = objItem.Get("Location")
'MsgBox strLocation
~~~~~~~~~~
[/EDIT]