chrizz-at
Goto Top

Login Script mit Zeitsynchronisation?

Jetzt habe ich die Zeitsynchronisation (mittels Shellrun) eingebaut. Wie kann ich jetzt aber wenn die Zeitsynchronisation fehlschlägt einen Error ausgeben?

Bitte um eure Hilfe! Mein Code sieht derzeit so aus:

Liebe Gemeinde,
Habe ein sogut wie fertiges Logon Script, Welches nach Gruppenzugehörigkeit Netzlaufwerke und auch Drucker verbindet.
Es gibt auch die Errors aus (Wenn die Freigabe nicht existiert usw.)
' Logon Script  
' Author: HOST\Christoph Strassmair  
'**********************  
On Error Resume Next

Dim objFSO,objFILE,objShell,objNetwork, strWelcomeMsg, strHelpMsg, iErrorTimeout, blnShowError
Set objFSO=CreateObject("Scripting.FileSystemObject")  
Set objShell=CreateObject("Wscript.Shell")  
Set objNetwork=CreateObject("Wscript.Network")  
Const Company = "HOST"  


strWelcomeMsg="Willkommen " & objNetwork.UserName & ", in der Domain " & objNetwork.UserDomain & "!" & vbCrLf & vbCrLf & "Ihre Systemzeit wurde mit dem Anmeldeserver synchronisiert." & vbCrLf & vbCrLf & "Aktuelles Datum und Uhrzeit: " & vbCrLf & Now()  
strHelpMsg=""  
iErrorTimeout=60
blnShowError=True

' Zeit Synchronisieren  
objShell.Run "net time \\host-ulysses /set /yes"  

' Netzlaufwerke mappen  
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domänen-Admins") Then MapIt "F:","\\host-server\users\" & objNetwork.Username & "$"  
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"") Then MapIt "T:","\\host-server\Tools"  
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"") Then MapIt "U:","\\host-server\" & objNetwork.Username  
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"") Then MapIt "V:","\\host-server\verwaltung"  
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"") Then MapIt "S:","\\host-server\Treiber"  
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"") Then MapIt "Z:","\\192.168.11.101\test"  
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"") Then MapIt "P:","\\host-server\projekte"  

' Drucker Mappen  
AddPrinterPortConnection "LPT1:","\\Printserver\Drucker1" ' Drucker die LPT1 brauchen  
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domänen-Admins") Then AddPrinterConnection "\\Printserver\Drucker1"  
 objNetwork.SetDefaultPrinter "\\Printserver\Drucker1" ' als Standarddrucker definieren  

' Zusammenfassung erstellen  
iDisplayTimeout=45 ' Nachricht schließt sich nach 45 Sekunden  
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 & "Verbindung zu Netzlaufwerk(en):" & vbcrlf  

If objDrives.Count = 0 Then
	strMsg = strMsg & CRLF & _
	"Kein Netzlaufwerk ist verbunden." & CRLF  
Else
For i = 0 to objDrives.Count - 1  Step 2
	strMsg=strMsg & "Laufwerk " & objDrives.Item(i) & "=" & objDrives.Item(i+1) & vbcrlf   
Next
	strMsg=strMsg & vbcrlf
End if

' Drucker auflisten  
Set objPrinters = objNetwork.EnumPrinterConnections
strMsg=strMsg & vbcrlf & "Verbindung zu Drucker(n):" & vbcrlf  

If objPrinters.Count = 0 Then
	strMsg = strMsg & CRLF & CRLF & _
	"Kein Netzwerk-Drucker ist verbunden." & CRLF  
Else
For i = 0 to objPrinters.Count - 1 Step 2
	strMsg=strMsg & objPrinters.Item(i) &" = "& objPrinters.Item(i+1) & vbcrlf  
Next
	strMsg=strMsg & vbcrlf
End if

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

' Ende des Haupscripts  

' Benötigte Funktionen  
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="Passwort läuft ab in: " & vbCrLf & 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

Sub 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 & Err.Description
			objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation  
			Err.Clear
		End If
End Sub

Sub AddPrinterConnection(strPrinterUNC)
	On Error Resume Next
	objNetwork.AddWindowsPrinterConnection strPrinterUNC
	
		If Err.Number <> 0 Then
			strMsg="Es ist ein Fehler aufgetreten beim Verbinden von " & UCase(strPrinterUNC) & ". " &_  
			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 Then
			strMsg="Es ist ein Fehler aufgetreten beim Verbinden von " & UCase(strPrinterUNC) & " zu " &_  
			strPort & VbCrLf & Err.Description
			objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation  
			Err.Clear
		End If
End Sub

Content-Key: 97244

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

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

Mitglied: 60730
60730 Sep 18, 2008 at 09:40:13 (UTC)
Goto Top
Servus,

' Zeit Synchronisieren   
objShell.Run "net time \\host-ulysses /set /yes && if not %errorlevel%==0" strMsg="Es ist ein Fehler beim Zeit Synchronisieren aufgetreten"  

Gruß
Member: chrizz-at
chrizz-at Sep 18, 2008 at 11:09:40 (UTC)
Goto Top
Hallo, danke für deine schnelle antwort, aber wenn ich das einfüge, kommt die fehlermeldung "Anweisungsende erwartet" face-sad
Beschreibung: Kompilierungsfehler in Microsoft VBScript
Member: chrizz-at
chrizz-at Sep 22, 2008 at 14:03:23 (UTC)
Goto Top
ich habs face-smile

'Zeit Synchronisieren   
nReturnCode = wshShell.Run("net time \\host-ulysses /set /yes", 0, TRUE)   
   If (nReturnCode <> 0) Then
      strMsg = "Es war nicht möglich die lokale Uhrzeit zu synchronisieren!"  
			objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation  
			nReturnCode.Clear
   End If