tuxhunt3r
Goto Top

VBScript Logonscript - Funktioniert per manuellem Aufruf, aber nicht als Logonscript

Hallo ans Forum


Wir haben hier eine 2003 Domäne mit Windows XP Pro SP3 Clients. Ich habe relativ frisch in diesem Betrieb angefangen und habe als eine der ersten Jobs den Auftrag bekommen, das Logonscript frisch zu schreiben. Vorher wurden einzelne, zusammengefrickelte Batches verwendet und fast jeder User hatte einen eigenen Batch auf der Netlogon-Freigabe. Ich wollte das nun ändern. Nun habe ich ein VBScript geschrieben, welches anhand eines CSV-Files die richtigen Laufwerke verbindet. Das CSV ist folgendermassen aufgebaut:

USER;LWB;PATH
User1;G:;\\FS1\Share1$
User1;Q:;\\FS1\ShareAB$
User2;G:;\\FS2\ShareB$
User3;P:;\\FS1\Share2$
usw....


Hier ist der dafür verantwortliche Codeschnippsel ("DC" ist ein Platzhalter für meinen Domänencontroller):
Set wshNetwork = CreateObject("WScript.Network")  
Username = wshNetwork.UserName
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H0001
Set objConnection = CreateObject("ADODB.Connection")  
Set objRecordSet = CreateObject("ADODB.Recordset")  
LWFilePath = "\\DC\netlogon"  

objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _  
          "Data Source=" & LWFilepath & ";" & _  
          "Extended Properties=""text;HDR=YES;FMT=Delimited"""  

objRecordset.Open "SELECT * FROM Laufwerke.csv", _  
          objConnection, adOpenStatic, adLockOptimistic, adCmdText

Do Until objRecordset.EOF
	if objRecordset.Fields.Item("USER") = Username Then  
		LWB = objRecordset.Fields.Item("LWB")  
		PATH = objRecordset.Fields.Item("PATH")  
		wscript.echo objRecordset.Fields.Item("USER") & "   " & LWB & "   " & PATH  
		wshNetwork.MapNetworkDrive LWB, PATH, false
	End if
    objRecordset.MoveNext
Loop


Ich rufe also das CSV (welches auch im Netlogon-Share liegt) mit Datenbanktechniken auf, spule es mit der DO UNTIL Schleife durch und wenn Zelle "USER" der aktuellen Zeile = Benutzername ist, verbinde ich das Laufwerk anhand der Infos in den Spalten "LWB" und "PATH".

Das Script funktioniert. Aber nur solange ich es entweder per Doppelklick, im CMD-Fenster per CScript.exe oder per WScript.exe aufrufe. Wenn ich es hingegen bei meinem AD-Benutzer als Loginscript hinterlege, werden die Laufwerke nicht verbunden. Wieso das? Das Script funktioniert. Auch die anderen Dinge, die das Script ausserdem noch macht (z.B. zuerst alle Laufwerke trennen und Anmeldezeit in ein Logfile schreiben) funktionieren tiptop. Nur dieser Teil wird wie nicht ausgeführt. Woran könnte das liegen?

Gruss
TuXHunT3R

Content-Key: 190312

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

Printed on: April 19, 2024 at 07:04 o'clock