chrizz-at
Goto Top

VBS Logon Script - Problem!

Kann mir jemand auf die Sprünge helfen?

Ich danke euch sehr herzlich und schöne Feiertage!

Christoph

Hallo liebe Leute! Ich habe hier ein Logon Script mit VBS geschrieben, nur das einzige Problem ist das es bei der Zuordnung egal ist welche NetzLaufwerke gemappt werden, egal welche Gruppe ich angebe es versucht trotzdem zu verbinden face-sad -> Siehe Pfeil im Code!

Ich habe keine Ahnung wo der Fehler ist..
' Login Script  
'Author: HOST\Christoph  
'**********************  
On Error Resume Next
Dim objFSO,objFILE,objShell,objNetwork
set objFSO=CreateObject("Scripting.FileSystemObject")  
set objShell=CreateObject("Wscript.Shell")  
set objNetwork=CreateObject("Wscript.Network")  
Const Server = "\\host-server\"  
' Standard  


strWelcomeMsg="Willkommen " & objNetwork.UserName & " in der Domäne " & objNetwork.Userdomain & "!"  
strHelpMsg="Kontaktieren Sie den Administrator um Hilfe zu bekommen!"  
iErrorTimeout=10
blnShowError=True


' Netzlaufwerke mappen  
If (IsAMemberOf("") = true) Then  
MapIt "Y:" , Server & objNetwork.Username  
SetRegKeyNotes
End If

If (IsAMemberOf("g_buero") = true) Then  
MapIt "Z:" , Server & "tools"  
SetRegKeyNotes
End If

' Drucker mappen  
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"g_buero") Then AddPrinterConnection "\\Printserver\Drucker1" '< --- egal was ich hier schreibe es wird trotzdem verbunden, ich bin auch nicht in der Gruppe g_buero!.. Bei der Gruppe "Administratoren" funktioniert es aber (das es nicht verbunden wird)!   

AddPrinterPortConnection "LPT1:","\\Printserver\Drucker1"  
 AddPrinterConnection "\\Printserver\Drucker1"  
objNetwork.SetDefaultPrinter "\\Printserver\Drucker1"  


' Zusammenfassung zeigen  
iDisplayTimeout=10
strMsg=""  
strMsg=strMsg & strWelcomeMsg & VbCrLf
strMsg=strMsg & vbcrlf
strMsg=strMsg & PasswordExpires(objNetwork.Userdomain,objNetwork.Username) & VbCrLf
strMsg=strMsg & vbcrlf

' Netzlaufwerke auflisten  
Set objDrives = objNetwork.EnumNetworkDrives
strMsg=strMsg & "Verbundene Netzlaufwerke:" & vbcrlf  
For i = 0 to objDrives.Count - 1  Step 2
  strMsg=strMsg & "Laufwerk " & objDrives.Item(i) & "=" & objDrives.Item(i+1) & vbcrlf   
Next
strMsg=strMsg & vbcrlf

' Drucker auflisten  
Set objPrinters = objNetwork.EnumPrinterConnections
strMsg=strMsg & vbcrlf &"Verbundene Drucker:" & vbcrlf  
For i = 0 to objPrinters.Count - 1 Step 2
  strMsg=strMsg & objPrinters.Item(i) &" = "& objPrinters.Item(i+1) & vbcrlf  
Next
strMsg=strMsg & vbcrlf

' Zusammenfassung zeigen  
If strMsg<>"" Then objShell.Popup strMsg,iDisplayTimeout,"Logon Summary",vbOKOnly+vbInformation  

' Ende des Hauptscripts  

'//////////////////////////////////////////////////  

' Funktion für Alter des Passworts  
Function PasswordExpires(strDomain,strUser)
On Error Resume Next
Dim objUser
Set objUser=GetObject("WinNT://" & strDomain & "/" & strUser & ",user")  
PassExp=INT(objUser.MaxPasswordAge/86400)-INT(objUser.PasswordAge/86400)

If PassExp<0 Then
	strPassMsg="Ihr Passwort läuft nie ab."  
Else
	strPassMsg="Ihr Passwort läuft ab in " & PassExp & " Tag(en)"  
End If

PasswordExpires=strPassMsg
End Function

Function IsAMemberOf(strDomain,strUser,strGroup)
On Error Resume Next
Set objUser=GetObject("WinNT://" & strDomain & "/" & strUser & ",user")  
Set objGrp=GetObject("WinNT://" & strDomain & "/" & strGroup & ",group")  

If objGrp.IsMember(objUser.ADsPath) Then
	IsAMemberOf=True
Else
	IsAMemberOf=False
End If
End Function

Function MapIt(strDrive,strMap)
On Error Resume Next
If objFSO.DriveExists(strDrive) Then objNetwork.RemoveNetworkDrive(strDrive)

objNetwork.MapNetworkDrive strDrive,strMap

If Err.Number<>0 And blnShowError Then
	strMsg="Es ist ein Fehler aufgetreten beim Verbinden von " & UCase(strDrive) & " zu " &_  
	strMap & VbCrLf & strHelpMsg & VbCrLf & "Errornummer: " & Hex(err.Number) &_  
	VbCrLf & Err.Description
	objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation  
	Err.Clear
End If

End Function

Sub AddPrinterConnection(strPrinterUNC)
On Error Resume Next

objNetwork.AddWindowsPrinterConnection strPrinterUNC

If Err.Number<>0 And blnShowError Then
	strMsg="Es ist ein Fehler aufgetreten beim Verbinden von " & UCase(strPrinterUNC) & ". " &_  
	vbcrlf & VbCrLf & strHelpMsg & VbCrLf & "Errornummer: " & Hex(err.Number) &_  
	VbCrLf & Err.Description
	
	objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation  
	Err.Clear
End If

End Sub

Sub AddPrinterPortConnection(strPort,strPrinterUNC)
On Error Resume Next

objNetwork.AddPrinterConnection strPort,strPrinterUNC

If Err.Number<>0 And blnShowError Then
	strMsg="Es ist ein Fehler aufgetreten beim Verbinden von " & UCase(strPrinterUNC) & " zu " &_  
	strPort & vbcrlf & VbCrLf & strHelpMsg & VbCrLf & "Errornummer: " & Hex(err.Number) &_  
	VbCrLf & Err.Description
	
	objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation  
	Err.Clear
End If

End Sub

Content-Key: 104606

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

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

Member: bastla
bastla Dec 22, 2008 at 16:49:32 (UTC)
Goto Top
Hallo chrizz-at!

Wenn Du "On Error Resume Next" in Zeile 87 (und Zeile 5) auskommentierst (oder, besser, die fehlenden "Err.Number"-Abfragen für die Zeilen 88, 89 und 91 ergänzt), solltest Du dem Problem auf die Spur kommen ...

Grüße
bastla