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.)
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 97244
Url: https://administrator.de/contentid/97244
Printed on: April 24, 2024 at 11:04 o'clock
3 Comments
Latest comment
Servus,
Gruß
' Zeit Synchronisieren
objShell.Run "net time \\host-ulysses /set /yes && if not %errorlevel%==0" strMsg="Es ist ein Fehler beim Zeit Synchronisieren aufgetreten"
Gruß