Jump to content

Logon Script mit standortspezifischen Mappings


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

da wir bald auf Active Directory umsteigen hab ich schonmal angefangen an einem Script rumzubasteln.

 

Vorgabe:

Je nach Standort sollen die Standortfileserver (wenn user nicht an home standort, dann kein persönliches laufwerk) verbunden werden.

 

Dazu ist zu sagen: Ich habe von VBS/WSH keine Ahnung :)

 

Ein bisschen was hab ich schon.

Allerdings werden es mir zuviele IF Anfragen (wenn ich des für jeden Standort machen muss)

Danke an den Ersteller der Vorlage die ich mir aus dem Board hier geklaut habe.

 

'Variablen festlegen
dim wshnetwork
dim username
dim hp1
dim hp2
dim hp3
dim upath

' Fehlermeldungen unterdrücken
on error resume next

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_NTDomain")


' Defintion was ist zu tun
set wshnetwork=wscript.createobject("wscript.network")
Set wshnet = CreateObject("WScript.Network")
username = wshnet.UserName
standort = objItem.DcSiteName

if standort = "Stuttgart" then 
upath="\\filesrv_str\UserProfiles\"&username 'Synthax abhängig von der Freigabestruktur, username gibt dabei den vollständigen Benutzernamen des gegenwärtig angemeldeten Users wieder...
hp1="\\filesrv_str\HP1"
hp2="\\filesrv_str\HP2"
hp3="\\filesrv_str\HP3"
else
<snip abfragen für jeden standort>
end if

' evtl. vorhandene Netzlaufwerke entfernen
wshnetwork.removenetworkdrive "I:" 'U: ist hier nur ein Beispiel, steht für User
wshnetwork.removenetworkdrive "G:" 'Intern
wshnetwork.removenetworkdrive "H:" 'Kunden
wshnetwork.removenetworkdrive "M:" 'IT

'wartezeit zum trennen
WScript.Sleep 500

' Netzlaufwerke hinzufügen
wshnetwork.mapnetworkdrive "I:", upath 'U: ist hier nur ein Beispiel, steht für User
wshnetwork.mapnetworkdrive "G:", HP1
wshnetwork.mapnetworkdrive "H:", HP2
wshnetwork.mapnetworkdrive "M:", HP3

Link zu diesem Kommentar

[...]

Allerdings werden es mir zuviele IF Anfragen (wenn ich des für jeden Standort machen muss)

[...]

 

Bei vielen Programmiersprachen gibt es die "Switch-Case" Anweisung.

Das wäre das für Dich richtige.

Aber: Mir ist nicht bekannt, dass in VbScrpt die Switsch-Case Anweisung existiert...

 

Wie viele Standorte sind es denn?

 

Ha! Gefunden:

 

Select Case STR_Standort
   Case "Frankfurt" goto FFM
   Case "Paris" goto Paris
   Case "London" goto London
   Case Else 
 End Select

 

Hinweis:

Da ich in VbScript noch nie mit Sprungmarken gearbeitet habe, ist obenstehender Code nur beispielhaft zu sehen!!!

Link zu diesem Kommentar

Vor lauter telefonieren :) multitasking ade ;)

 

Meine Frage ist auch schwierig zu stellen.

 

Das Script würde ich gerne in der Größe behalten. Und zwar mit folgendem "Trick". Ob dies überhaupt bei WSH möglich ist kA.

 

ich würde gerne noch Variablen für die Standorte hinterlegen:

 

dim stuttgart

dim atlanta

dim newyork

 

stuttgart = filesrv_str

atlanta = filesrv_atl

newyork = filesrv_ny

 

und mir alle if fragen sparen indem ich eine doppelvariable (wortneuschöpfung ?!?) einsetze.

 

beispiel:

standort = objItem.DcSiteName

 

hp1="\\&&standort\HP1"

 

^^ logisch wsh bezeichnet.

 

dh.

in der var standort steht stuttgart drin

die ich gleichzeitig als variable auflösen will (also in filesrv_str)

 

geht sowas ?

 

vielen dank für die antworten

grüße

stephan

 

 

edit:

es sind im moment 9 standorte

tendenz steigend

Link zu diesem Kommentar

Kurze Zwischenfrage: Warum macht ihr nicht pro Standort ein Login-Skript?

Die Standort könnte ihr im AD über die Subnetze abbilden und dann die Login-Skripte mit den Standorten verknüpfen. Wenn ein Mitarbeiter am anderen Standort arbeitet bekommt er dort eine IP-Adresse zugewiesen und über diese wird dann das passende Login-Skript aufgerufen.

 

Außerdem könntet ihr, wenn gewünscht, den Standort-Admins das Recht geben ihr Login-Skript anzupassen.

Link zu diesem Kommentar

Hi,

Es hängt von deinem Unternehmen ab, ob du die Verwaltung des Loginskript delegieren möchtest. Ich würds nicht machen!

Lass das Skript herausfinden, an welchem Standort der User gerade ist (z.B. mit adsysteminfo) und entsprechend daraus die zum Standort gehörige INI-Datei einlesen, in der Laufwerksmappings, Drucker, Registrykeys etc. hinterlegt sind. Diese Ini-Datei darf dann auch ein Siteadmin editieren.

Aber Ahnung in VBS brauchst du

 

cu

blub

Link zu diesem Kommentar

Hallo zusammen,

 

Du musst im vorwege abklären, in welcher Demension Ihr die AD einbinden wollt.

Hat jeder Standort einen eigenen Domänen-Controller oder läuft das ganze über eine Standleitung bei euch auf und es gibt nur diesen einen DC in der Verwaltung?

 

Wenn dies der fall ist, kannst du es mit einer If Schleife pro Standort Lösen.

 

Hierfür benötigst du noch ein kleines Tool von MS. Das Tool heißt IFMEMBER.EXE.

Damit kannst du wärend des Logins Prüfen, in welchem OU sich der User oder der Computer befindet.

 

Also falls es keine Standortreplizierung gibt, kannst dann in der AD OUs mit dem Namen der Standorte erstellen. Dort werden die Computer und User rein gelegt.

 

Im Script könntest du es nun wie folgt umsetzten.

 

rem###Loginscript start###
IFMEMBER "Standort1"
IF not Errorlevel 1 goto pruefungstand2
net use H: \\Fileserver4Standort1\Freigabe
goto ende
:pruefungstand2
IFMEMBER "Standort2"
IF not Errorlevel 1 goto pruefungstand3
net use H: \\Fileserver4Standort2\Freigabe
goto ende
:pruefungstand3
IFMEMBER "Standort3"
IF not Errorlevel 1 goto pruefunghaupt
net use H: \\Fileserver4Standort3\Freigabe
goto ende
:pruefunghaupt
IFMEMBER "Hautpverwaltung"
IF not Errorlevel 1 goto ende
net use H: \\Fileserver4Verwaltung\Freigabe
:ende
rem###Loginscript Ende###

 

Ich hoffe, ich konnte dir weiter helfen.

 

Gruß

Frederik

Link zu diesem Kommentar

Hallo Frederik,

 

an jedem der Standorte befindet sich 1 oder 2 DC.

 

Also wird wohl die Lösung mit der Zuweisung auf die Standorte in Frage kommen.

 

Nun bleibt bei mir noch die Frage in welcher Reihenfolge die Gruppenrichtlinien abgearbeitet werden?

 

Standort

Gruppen-OU

oder andersrum.

 

Ich werd aus dem O'Reilly Active Directory Buch in diesem Fall nicht so ganz schlau (obwohl ich eigentlich mit meinem englisch zufrieden bin)

 

danke und grüße

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...