rbpn
Goto Top

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!!!!!!

Content-Key: 13402

Url: https://administrator.de/contentid/13402

Printed on: April 23, 2024 at 11:04 o'clock

Member: Pedant
Pedant Jul 20, 2005 at 22:17:32 (UTC)
Goto Top
Hallo rbpn,

sind Offline-Dateien eventuell eine Lösung für Dich?
1. Ordneroptionen -> Offlinedateien -> Offlinedateien aktivieren
2. Rechte Maustaste auf Y: -> Offline verfügbar machen

Gruß Frank
Member: Pedant
Pedant Jul 20, 2005 at 22:35:46 (UTC)
Goto Top
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
Member: gemini
gemini Jul 21, 2005 at 05:31:48 (UTC)
Goto Top
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")
Member: Biber
Biber Jul 21, 2005 at 11:25:20 (UTC)
Goto Top
ööhmm, gemini,

kann das sein, dass da eine Zeile fehlt?
Oder woher kommt strContainer?

Frank / der Biber aus Bremen
Member: gemini
gemini Jul 21, 2005 at 15:15:16 (UTC)
Goto Top
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]