kidjo
Goto Top

VBS Login Script verweigert seinen Dienst

Hallo!

Ich habe dieses Script sozusagen geerbt und eigentlich immer nur Probleme damit. Laufwerke werden gar nicht verbunden und Drucker nur wenn die Sterne richtig stehen.
Da ich ein VB Neuling bin kann ich das Script zwar entziffern, aber für Fehlersuche reicht mein Wissen leider noch nicht.
Daher meine Bitte an euch, könnt Ihr mal drüber schauen und mir eventuell weiterhelfen?

Ich habe das Script um ca. 40 Drucker reduziert, damit das lesen einfacher fällt!

___________________________________________________________________________________________________________


Initialize

GetUserName

on error resume next

wscript.echo "Hallo " & loginUser

'Hier könnten allgemeine Laufwerks und Druckerverbindungen stehen....


'Nächste Funktion liest die Gruppen aus
sucheGruppen

'########################### Globale Variablen
Dim WSHNetwork
Dim loginUser

'########################### Funktionen
Sub Gruppen(aktuelleGruppe)

Select Case aktuelleGruppe

Case "LAUFWERKE_CNC"
wscript.echo "Laufwerk CNC wird verbunden"
MapDrive "N:","\\teamfile\cnc"

Case "LAUFWERKE_FINANZEN"
wscript.echo "Laufwerke BMD und Soft2000 werden verbunden"
MapDrive "R:","\\teamstore\bmd"
MapDrive "S:","\\teamfile\Fibu"

Case "LAUFWERKE_HPO"
wscript.echo "Laufwerke HPO und Schelling werden verbunden"
MapDrive "I:","\\teamfile\hpo"
MapDrive "J:","\\teamfile\schlling"

Case "LAUFWERK_P2"
wscript.echo "Laufwerk P2 wird verbunden"
MapDrive "Q:","\\teamvm02\P2"

Case "Laufwerk_QUI_Teilnehmer"
wscript.echo "Laufwerk QUI Teilnehmer wird verbunden"
MapDrive "Z:","\\teamfile\QUI_Schulung"

Case "Laufwerk_Adpontes"
wscript.echo "Laufwerk Adpontes wird verbunden"
MapDrive "P:","\\teamwsv01\p2-adpontes"

Case "DRUCKER_Anmeldung"
wscript.echo "Anmeldung Drucker werden verbunden"
WSHNetwork.AddWindowsPrinterConnection "\\teamstore\Linz_Anmeldung_HPLJ1200"

Case "DRUCKER_BRAUNAU"
wscript.echo "Braunau Drucker werden verbunden"
WSHNetwork.AddWindowsPrinterConnection "\\Teamstore\Braunau_Sekretariat_HPLJ1100"
WSHNetwork.AddWindowsPrinterConnection "\\Teamstore\Braunau_StandortLtg_HPDJ1125C"
WSHNetwork.AddWindowsPrinterConnection "\\Teamstore\Braunau_AV_HPLJ1100"

End Select

End sub


Sub sucheGruppen()
On Error Resume Next
adsPath = "WinNT://TEAM-WORK/" & loginUser
Set objSAM = GetObject("WinNT:")
Set objUser = objSAM.OpenDSObject(adsPath,"","", ADS_READONLY_SERVER)
For Each Prop In objUser.groups
call Gruppen(ucase(Prop.Name))
Next
End Sub

Sub MapDrive(strDrive,strShare)
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Netzlaufwerk verbinden, schon bestehende Verbindung überschreiben
On Error Resume Next
WSHNetwork.MapNetworkDrive strDrive, strShare
If Err.Number Then
''''wscript.echo Err.Description
WSHNetwork.RemoveNetworkDrive strDrive
WSHNetwork.MapNetworkDrive strDrive, strShare
End If
End Sub

Sub GetUserName ()
loginUser = ""
While loginUser = ""
loginUser = WSHNetwork.UserName
Wend
End Sub

Sub Initialize ()
Set WSHNetwork = WScript.CreateObject("WScript.Network")
End Sub

___________________________________________________________________________________________________________

Vielen Dank für eure Mühe schon mal vorab!

Liebe Grüsse
Kidjo

Content-Key: 30320

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

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

Member: Biber
Biber Apr 14, 2006 at 17:46:17 (UTC)
Goto Top
Moin, Kidjo,
mach Dir mal keine Sorgen, dass Du VB-Neuling bist - wer immer dieses Skript geschrieben hat, ist auch nicht weiter *gg

Der Bug ist relativ banal (passiert ja auch nicht viel trotz dieses aufgeblähten Codes).

Der Schnipsel startet
..
Initialize....GetUser...
sucheGruppen ---> Ruft "call Gruppen(ucase(Prop.Name))" <----------------

...das heißt, die Subroutine "Gruppen()" bekommt als Parameter ("EINE GRUPPE ABER IMMER IN GROSS *LACH*")

Und wenn Du dann in diese *lach* CASE-Konstrukte reinschaust, mit was da "GROSSE GRUPPE" verglichen wird... siehst Du es?
..
Select Case "LAUFWERK_ADPONTES"  
...
 CASE "Laufwerk_Adpontes"          
...tja ...dieser Vergleich wird sehr selten funktioneren. face-wink

Also, wenn Du dieses bisheriges Skriptlett möglichst wenig anfassen/anpassen willst, dann schreibe in der Sub Gruppen() alle Strings nach dem CASE "IN GROSSBUCHSTABEN"

Gruß Biber