rababar2014
Goto Top

VBS Logon-Script für die Nutzer einrichten

Hallo Forum,

ich habe mir aus einer Vorlage hier im Forum ein VSB-Script gebastelt, um meine Netzlauferke bei Anmeldung zu mappen. Bisher lief das über Batch und die Zordnung des Logon-Scripts über das AD-Benutzerprofil, was auch gut funktioniert hat.

Jetzt habe ich das gleiche mit dem VBS Script versucht. Das Script im Netlogon-Ordner abgelegt. Im AD-Benutzer als logon (ohne Pfad und Endung VBS) den Namen des Scripts hinterlegt. Das Script wird aber nicht ausgeführt und auch die Netzlaufwerke dementsprechend nicht gemappt. das Script an sich funktioniert aber, wenn ich es nach der Anmeldung manuell ausführe.

Kann mir jemand sagen, warum das nicht funktiniert, was ich da falsch mache. Jetzt werdet Ihr vielleicht sagen, mach es über GPO, aber zum einen ist es mir so lieber und zum anderen würde ich gerne wissen, warum es auf dem Weg nicht funktioniert.

Läuft dass mit VBS-Logon Scripten anders als mit einer Batch beim Mappen der Laufwerke bei der Benutzeranmeldung?

Danke schonmal für Hinweise
Rababar

Content-ID: 246962

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

Ausgedruckt am: 26.11.2024 um 09:11 Uhr

Pjordorf
Pjordorf 20.08.2014 um 22:55:12 Uhr
Goto Top
Hallo,

Zitat von @rababar2014:
Wo ist deine andere Frage geblieben, gelöscht?
Das Script wird aber nicht ausgeführt
Sicher das gar nichts ausgeführt wird oder nur nicht deinen Wünschen entsprechend? Etwas passiert immer und sei das ein Fehler erzeugt und generiert wird.

Kann mir jemand sagen, warum das nicht funktiniert,
Sag uns die Fehlermeldung.

aber zum einen ist es mir so lieber
Dein Wunsch sei Bills Befehl.

Läuft dass mit VBS-Logon Scripten
Es gibt VBS Skripte aber kein VBS-Logon Skript. Wo hast du den Blödsinn her? Du kannst allerdings VBS als Logon Skripte verwenden wenn alles passt.

anders als mit einer Batch
Nicht wirklich, aber VBS ist eben keine reine Batch Datei /BAT oder CMD), daher ist es wichtig wie DEIN System auf die Endung VBS reagiert.

http://technet.microsoft.com/en-us/library/ee156587.aspx
https://www.microsoft.com/resources/documentation/windows/xp/all/proddoc ...
https://www.microsoft.com/resources/documentation/windows/xp/all/proddoc ...
https://www.microsoft.com/resources/documentation/windows/xp/all/proddoc ...
https://www.microsoft.com/resources/documentation/windows/xp/all/proddoc ...

http://stackoverflow.com/questions/13706267/launch-vbs-script-after-pc- ...
http://www.visualbasicscript.com/Some-methods-to-run-your-script-m62787 ...
http://msdn.microsoft.com/en-us/library/t0aew7h6%28VS.85%29.aspx

Gruß,
Peter
rababar2014
rababar2014 20.08.2014 aktualisiert um 23:15:00 Uhr
Goto Top
Zitat von @Pjordorf:

Hallo,

> Zitat von @rababar2014:
Wo ist deine andere Frage geblieben, gelöscht?

Welche Frage meinst Du?

> Das Script wird aber nicht ausgeführt
Sicher das gar nichts ausgeführt wird oder nur nicht deinen Wünschen entsprechend? Etwas passiert immer und sei das ein
Fehler erzeugt und generiert wird.

> Kann mir jemand sagen, warum das nicht funktiniert,
Sag uns die Fehlermeldung.

Eine Fehlermeldung erhalte ich nicht. Aber wenn ich das VBS-Script manuell ausführe , werden die Laufwerke gemappt. Wenn ich das Script im Profil im AD hinterlege, um es als LOGON-Script zu nutzen, passiert gar nichts, nach der Anmeldung.

> aber zum einen ist es mir so lieber
Dein Wunsch sei Bills Befehl.

ich werd mal mit Ihm telefonieren face-wink

> Läuft dass mit VBS-Logon Scripten
Es gibt VBS Skripte aber kein VBS-Logon Skript. Wo hast du den Blödsinn her? Du kannst allerdings VBS als Logon Skripte
verwenden wenn alles passt.

Ja, das meine ich, dann habe ich mich wohl falsch ausgedrückt.

Das Script sieht so aus, wie gesagt, nach einer Vorlage hier aus dem Forum

 
 -------------------------------------------------------'  
' MapDrives.vbs  
' by fritzo@stop1984.org in 12/2010  
' VBScript to map multiple network drives  
' enhancement of namedrive.vbs by Guy Thomas and Barry Maybury  
' -------------------------------------------------------'  
Option Explicit
Dim objNetwork, objShell, objFile
Dim drv, drvpath, drvname

Set objNetwork = CreateObject("WScript.Network")  
Set objShell = CreateObject("Shell.Application")  
Set objFile = CreateObject("Scripting.FileSystemObject")	  

MapDrive "X:", "\\fileserver\Daten1", "Daten1"  
MapDrive "Y:", "\\fileserver\Daten2", "Daten2"  
MapDrive "Z:", "\\fileserver\Daten3", "Daten3"  

Set objNetwork = Nothing
Set objShell = Nothing
Set objFile = Nothing
Wscript.Quit

Sub MapDrive (drv, drvpath, drvname)
	If objFile.DriveExists(drv) Then
		WScript.Echo "Drive already exists"  
		Exit Sub
	Else
		objNetwork.MapNetworkDrive drv, drvpath
		objShell.NameSpace(drv).Self.Name = drvname
	End If
End Sub
TuXHunt3R
TuXHunt3R 21.08.2014 um 08:02:49 Uhr
Goto Top
Tag

So ein Ähnliches hatte ich bei mir auch. Mein Loginscript läuft auch auf VBS. Ich habe mich dann dazu entschieden, das Loginscript zuerst mittels Batch in den %temp% Ordner zu kopieren und dann von dort mittels Cscript anzuschmeissen. Also etwa so:


If exist %temp%\loginscript.vbs del /s /q %temp%\loginscript.vbs
Copy %logonserver%\netlogon\loginscript.vbs %temp

Cscript.exe %temp%\loginscript.vbs

Code ist nicht getestet.
Als Loginscript hinterlegst du diese Batchdatei.

Bei mir läuft das seit 2 Jahren so und funktioniert 1A
rababar2014
rababar2014 21.08.2014 um 09:53:06 Uhr
Goto Top
@ TuXHunt3R

ja, dass hatte ich auch schon überlegt. Das Probelm dabei ist, ich habe 5 Mitarbeiter, die unterschiedliche Laufwerke gemappt bekommen, dann müsste ich 5 unterschiedliche VBS Scripte schreiben und 5 Batches. also 10 Scripte. Dann habe ich mir überlegt, wie ich das sauberer hinbekomme...
emeriks
emeriks 21.08.2014 um 12:48:10 Uhr
Goto Top
Hi,
vergesst doch mal das Script vorübergehend. Wenn es nicht ausgeführt wird, dann ist der Code zweitrangig. Erstmal muss es überhaupt starten.

Ich würde erstmal eine allgemeine Message Box einbauen, um zu sehen, ob es überhaupt ausgeführt wird.
z.B. in Zeile 9
  msgbox "Script Start"  

Wenn die Meldung kommt, dann wird das Script gestartet, funktioniert bloß nicht.
Wenn die Meldung nicht kommt, dann wird das Script gar nicht erst gestartet.

Wenn es nicht gestartet wird:
Hast Du die Policy "Beim Neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten" aktiviert? Wenn nein, dann tu es bitte.
Ist das Script auf alle DC der betreffenden Domain repliziert worden, sofern Du denn mehrere DC's hast?
Kann der Benutzer dieses Script von allen DC via \\{Servername}\Netlogon\{Script}.vbs starten?

Wenn es gestartet wird:
Setze Dir mehrere msgbox Zeilen in den Code, damit Du siehst, wie weit er kommt. Aber weil Du ja kein "On error resume next" drin hast, müsste er bei Fehler eigentlich eine Felermeldung bringen ...

E.
rababar2014
rababar2014 21.08.2014 um 12:57:40 Uhr
Goto Top
Ich würde erstmal eine allgemeine Message Box einbauen, um zu sehen, ob es überhaupt ausgeführt wird.
z.B. in Zeile 9
>   msgbox "Script Start"  
> 

Wenn die Meldung kommt, dann wird das Script gestartet, funktioniert bloß nicht.
Wenn die Meldung nicht kommt, dann wird das Script gar nicht erst gestartet.

ok versuch ich mal
Wenn es nicht gestartet wird:
Hast Du die Policy "Beim Neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten" aktiviert? Wenn
nein, dann tu es bitte.
Das habe ich extra deaktiviert, damit der Sytsemstart schneller geht.
Ist das Script auf alle DC der betreffenden Domain repliziert worden, sofern Du denn mehrere DC's hast?

Ich habe nur einen DC
Kann der Benutzer dieses Script von allen DC via \\{Servername}\Netlogon\{Script}.vbs starten?

Ja, ich kann als Benutzer das Script manuell aus dem Netlogon starten, erhalte aber direkt danach, das Netzwerkkennwort ist falsch. Wo muss ich den im Script Benutzername und Netzwerkkenwort eintragen?
emeriks
emeriks 21.08.2014 um 14:13:31 Uhr
Goto Top
Zitat von @rababar2014:
> Wenn es nicht gestartet wird:
> Hast Du die Policy "Beim Neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten" aktiviert?
Wenn
> nein, dann tu es bitte.
Das habe ich extra deaktiviert, damit der Sytsemstart schneller geht.
Na dann ist DAS höchstwahrscheinlich das Problem.
E.
rababar2014
rababar2014 21.08.2014 um 15:23:50 Uhr
Goto Top
aber warum geht dann die batch?
emeriks
emeriks 21.08.2014 um 15:38:47 Uhr
Goto Top
Zitat von @rababar2014:

aber warum geht dann die batch?
Sorry, das habe ich jetzt überlesen ....

dabei fällt mir auf
Im AD-Benutzer als logon (ohne Pfad und Endung VBS) den Namen des Scripts hinterlegt.
Du meinst "ohne Pfad und mit Endung VBS" oder tatsächlich "auch ohne Endung"?
Wenn das Script "mapdrives.vbs" heißt, dann muss das so auch im Benutzerobjekt stehen, also incl. Endung.

E.
rababar2014
rababar2014 21.08.2014 um 15:46:20 Uhr
Goto Top
ok, dann korrigiere ich das. ich hatte es ohne endung hinterlegt.

Noach was ist mir aufgefallen. Im Script sind Benutzername udn Passwort nicht hinterlegt. Ist das beim VBS ebenso wie beim batch, dass das Script das nicht benötigt, weil der Benutzer für den es ausgeführt wird, ja angemeldet ist oder muss das rein?

Wenn ja, wo füge ich die Informationen ein?
emeriks
emeriks 21.08.2014 um 17:11:22 Uhr
Goto Top
Noach was ist mir aufgefallen. Im Script sind Benutzername udn Passwort nicht hinterlegt. Ist das beim VBS ebenso wie beim batch,
dass das Script das nicht benötigt, weil der Benutzer für den es ausgeführt wird, ja angemeldet ist oder muss das
rein?
Das Script läuft im Benutzerkontext. Wenn er keine Berechtigung auf den Netzwerkordner hat, dann kann er sich das auch nicht verbinden. Jedoch solltest Du in der Sub "MapDrive" die ggf. auftretenden Fehler abfangen, weil sonst das Script ggf. bei einem Laufwerk aussteigt ohne die nachfolgenden zu verbinden.

Sub MapDrive (drv, drvpath, drvname)
  On Error Resume Next
  If objFile.DriveExists(drv) Then
    WScript.Echo "Drive already exists"  
    Exit Sub
  Else
    Err.Clear
    objNetwork.MapNetworkDrive drv, drvpath
    If Err.Number = 0 then
      objShell.NameSpace(drv).Self.Name = drvname
    else
      'ignorieren oder MessageBox oder sonstwas  
    end if
  End If
End Sub

E.
rababar2014
rababar2014 21.08.2014 um 17:44:53 Uhr
Goto Top
Die Berechtigungen auf den Netzwerkordnern sind schon alle korrekt. Aber im Script sind Benutzername und Passwort nicht hinterlegt.
emeriks
emeriks 22.08.2014 um 12:21:13 Uhr
Goto Top
Wieso sollte auch?
Die Freigaben liegen doch auf Member-Server oder DC's der Domäne, oder?
Falls ja, dann braucht man kein Login+Passwort mitgeben, weil der Benutzer doch in seiner Sitzung bereits autentifiziert ist. Entweder hat er Zugriff oder nicht.

Läuft das Script denn nun überhaupt bei Login?

E.