Jump to content

Netzlaufwerke per vbs Script einbinden


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

Empfohlene Beiträge

Guten Abend zusammen,

 

ich hatte mir ein Beispielscript zum mappen von einem Netzlaufwerk besorgt (vbs) und ergänzt.

Ich bin folgendermaßen vorgegangen:

 

Im AD habe ich eine neue Sicherheitsgruppe angelegt und dem entsprechenden User die Mitgliedschaft gegeben.

Anschließend wollte ich mit folgendem Script das Laufwerk "P" einbinden. Leider passiert überhaupt nichts.

Script ist natürlich auch in den GPOs entsprechend zugeteilt aber weder da, noch beim manuell ausführen passiert etwas.

 

 

 

 

'==========================================================================

'==========================================================================
'Ausblenden eventueller Fehlermeldungen
'--------------------------------------------------------------------------
on error resume next
'--------------------------------------------------------------------------
'Instanzieren des Windows Scripting Hosts
'--------------------------------------------------------------------------
Set appShell = CreateObject("Shell.application")
Set appShFolder = appShell.Namespace(17)
Set wshShell = CreateObject("WScript.Shell")
Set wshNetwork = CreateObject("WScript.Network")
Set adSysInfo = CreateObject("ADSystemInfo")

DomainString = wshNetwork.UserDomain
UserString = wshNetwork.UserName

Set UserObj = GetObject("WinNT://" & DomainString & "/" & UserString)

Server="Servername"

'--------------------------------------------------------------------------
'Löschen eventuell bestehender Networkconnections
'--------------------------------------------------------------------------
wshNetwork.RemoveNetworkDrive "P:"
'--------------------------------------------------------------------------
'Netzwerklaufwerke die in abhängigkeit von Gruppen verbunden werden
'Wichtig es werden hier nur Gruppen berücksichtigt die beim Userobjekt eingetragen sind
'--------------------------------------------------------------------------

For Each GroupObj In UserObj.Groups

        Select Case UCase(GroupObj.Name)

        Case "Gruppenname"
            ' Zusätzliches Laufwerke für Mitglieder Gruppenname verbinden
            wshNetwork.MapNetworkDrive "P:", "\\"&Server&"\Freigabename"
        
     End Select

Next

'--------------------------------------------------------------------------
'Umbenennen der Netzlaufwerke
'--------------------------------------------------------------------------
    
For Each appShFolderItem In appShFolder.Items
    Select  Case appShFolderItem.Path
        Case "P:\"    appShFolderItem.Name = "Freigabename"
    End Select
Next


WScript.quit

bearbeitet von CeDeZ
Link zu diesem Kommentar

Hallo,

 

funktioniert das Skript denn mit händischen Ausführen durch den Benutzer? Wird es vollständig ausgeführt oder vorzeitig beendet, abgebrochen?

 

 

Ich habe heute einer Lady einen neuen Rechner verpasst in einer anderen Domäne, sie muss aber auch noch auf Freigaben meiner Domäne zugreifen. Auf ein Anmeldeskript dafür habe ich verzichtet, ich habe sie angeleitet, sich selbst die Netzlaufwerkverbindung mit dem Explorer herzustellen, sie kann das jetzt.

bearbeitet von lefg
Link zu diesem Kommentar

durch das händische ausführen passiert leider auch nichts. Mit anderen Sicherheitsgruppen, die schon vor meiner Zeit eingerichtet wurden, funktioniert es komischerweise.

Der UNC Pfad stimmt auch und ich komme auch auf die Freigabe drauf wenn ich den Pfad im Explorer ansteuer. Netzlaufwerksverbindungen manuell herstellen würde nicht funktionieren, selbst mit einer vorgefertigten batch, da der Arbeitsablauf optimiert werden soll.

Link zu diesem Kommentar

alle Gruppen sind globale Gruppen, war auch meine Vermutung, dass ich da vlt etwas falsch eingestellt hab :/

Mit 2 Gruppen, welche schon existierten funktioniert es wie gesagt (beides globale Gruppen) und mit der neuen nicht (auch eine globale Gruppe)


Wieso per Script und GPO und nicht per GPP?

 

Setze mich erst seit kurzem mit Servern auseinander und hatte bis jetzt nur eine größere Servermigration durchgeführt, wo schon Logon Scripts bzw. Druckerscripts vordefiniert waren und deswegen kenne ich mich damit noch nicht wirklich aus :-) . Nach und nach soll es natürlich alles weiter aufgegliedert werden (z.B. verschiedene Standorte) und deshalb hänge ich jetzt an dem Logonscript für einen bestimmten Standort fest.

 

Im Endeffekt sollen für jeden Standort bestimmte Gruppen existieren mit entsprechenden Druckern und Netzlaufwerken, die eingebunden werden sollen

bearbeitet von CeDeZ
Link zu diesem Kommentar

Ok. Was wäre mit Ausgabe der gefundenen Gruppennamen? Vielleicht nur ein Zwiespalt zwischen sAMAccountName und CN der Gruppen?

 

For Each GroupObj In UserObj.Groups
        WScript.Echo GroupObj.Name
        Select Case UCase(GroupObj.Name)
PS: Ich würde beim Skript bleiben statt GPP zu verwenden - GPP ist gut und schön, aber irgendwann verlierst Du den Überblick, wer nun aufgrund welcher Gruppenmitgliedschaft in welcher Reihenfolge welchen Laufwerksbuchstaben verbunden bekommt :D bearbeitet von daabm
Link zu diesem Kommentar

Ok. Was wäre mit Ausgabe der gefundenen Gruppennamen? Vielleicht nur ein Zwiespalt zwischen sAMAccountName und CN der Gruppen?

 

For Each GroupObj In UserObj.Groups
        WScript.Echo GroupObj.Name
        Select Case UCase(GroupObj.Name)
PS: Ich würde beim Skript bleiben statt GPP zu verwenden - GPP ist gut und schön, aber irgendwann verlierst Du den Überblick, wer nun aufgrund welcher Gruppenmitgliedschaft in welcher Reihenfolge welchen Laufwerksbuchstaben verbunden bekommt :D

 

Also da wird die Gruppe auf jedenfall ausgegeben. Gibt es evtl. Beschränkungen bei der Zeichenlänge? Unwahrscheinlich oder? Der Gruppenname ist 18 Zeichen lang

Link zu diesem Kommentar

Wenn der Gruppenname beim Echo ausgegeben wird, beim Select Case dann aber übersprungen: Hast Du Non-ASCII Zeichen drin? Umlaute?

Eine Längenbeschränkung gibt es, aber die liegt für WinNT IMHO bei 20 Zeichen.

Beides nicht und auch keine Leerzeichen sondern alles zusammengeschrieben

Update: ich weiß nicht warum aber ich hab nochmal ne neue Gruppe erstellt mit anderem kurzen namen und jetzt funktioniert es.

(evtl. weil der Präfix bei der nicht funktionierenden Gruppe der gleiche war wie bei einer vorhandenen?)

 

Trotzdem Danke an alle für die Tipps :-)

 

 

PS:

 

Ist es besser verschiedene Gruppenrichtlinienobjekte für den Login anzulegen für unterschiedliche Standorte? Oder kann ich die verschiedenen Scripts jeweils in ein "Logon" Objekt einfügen?

(das Script enthält ja case anweisungen für die verschiedenen Benutzergruppen der Standorte)

 

 

 

 

bearbeitet von CeDeZ
Link zu diesem Kommentar

Zu Deinem "PS" hätte ich einen guten Rat: Nimm ein einziges Skript für alles und überall. Sonst suchst Du Dir später wieder einen Wolf. An den Standort kommst Du auch anders ran - notfalls sogar aus der Registrierung (HKLM\System\CCS\Services\Netlogon\Parameters:DynamicSiteName).

 

Im Netlogon Ordner habe ich momentan jeweils 1 Drucker und 1 Loginscript pro Standort. Es gibt insgesamt 3 Standorte, von daher ist es noch einigermaßen übersichtlich. Wenn die AD Gruppennamen am Anfang gleich sind dann funktioniert es nicht mit dem Script ist mir aufgefallen. Wie könnte ich das deiner Meinung nach anders lösen? Versteh nicht wie es mit den Standorten anders funktionieren soll

Link zu diesem Kommentar

Was meinst Du mit "am Anfang gleich" genau - bis zu welchem (wievieltem) Zeichen?

Und was genau bedeutet "funktioniert nicht"?

Viele viele "wscript.echo" helfen - oder ein Skript-Editor, mit dem man debuggen kann :)

 

Das mit den Standorten: Heute machst Du unterschiedliche Skripte für verschiedene Standorte.

Morgen machst Du nur noch ein Skript, das den Standort ermittelt und dann skriptintern unterschiedlich reagiert. Finde ich persönlich übersichtlicher...

Link zu diesem Kommentar

Was meinst Du mit "am Anfang gleich" genau - bis zu welchem (wievieltem) Zeichen?

Und was genau bedeutet "funktioniert nicht"?

Viele viele "wscript.echo" helfen - oder ein Skript-Editor, mit dem man debuggen kann :)

 

Das mit den Standorten: Heute machst Du unterschiedliche Skripte für verschiedene Standorte.

Morgen machst Du nur noch ein Skript, das den Standort ermittelt und dann skriptintern unterschiedlich reagiert. Finde ich persönlich übersichtlicher...

 

bei den ersten bei 3 Zeichen ist mir das z.B. schon aufgefallen. D.h. das script für die netzlaufwerke z.B. beinhaltet einen Case "FLPStandort1", das nächste script für den anderen Standort entsprechend "FLPStandort2". Dann funktioniert es nicht. Verwende ich aber FLPStandort1 und für den nächsten nur Standort2 dann läuft es ohne probleme... ergibt für mich keinen sinn und ich mach bestimmt auch nur irgendetwas falsch aber ich komm bis jetzt einfach nicht drauf :-D ... das mit den Standorten hört sich gut an, aber da es Neuland für mich ist werd ich mich da nach und nach ranwagen :-) aber klasse tipp!

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