its a huge script, and the remarks are in german, but here it is:
i added a few "$RC="s in the bootom part after the "saplogon.ini"-part.
Code:
; ....................................................................
; Kixtart2001(v4.22) Script
; Logonskript
; Version 0.91 // 13.01.2004 // RD
; ....................................................................
; ...Begruessung
; ....................................................................
SetConsole ("MAXIMIZE") ; Konsolenfenster anzeigen
Box (0,0,15,55,"double")
At (2,12) " - Helios Klinik - "
At (4,3) "Willkommen @userid!"
At (6,3) "Es ist @time Uhr."
At (7,3) "Sie sind angemeldet an %logonserver%."
At (8,3) "Ihr Homedrive ist %homedrive%."
At (9,3) "Ihre IP-Adresse lautet @ipaddress0"
At (10,3) "Ihre primaere Gruppe ist: @PRIMARYGROUP"
At (11,3) "Sie sind zur Zeit berechtigt als: @priv"
At (12,3) "Ihr Passwort wurde zuletzt vor @PWAGE Tagen geaendert."
At (18,0) ?
sleep 2
; ... Variablenzuordnung
; ....................................................................
$logonuser="/user:king\%username%"
$errnum=0 ; Fehlerzähler für Ausgabe ins Eventlog
$tss=0 ; Terminalserversession (1/0 = Ja/Nein)
$err=0
$succ=0 ; Mappen des Gruppenverzeichnisses erfolgreich (1/0 = Ja/Nein)
;$confpath="C:\GSD\wup_lokal\Novell Migration\Logonscript\Neu\netlogon-share\config" ; TESTPFAD!
;$toolpath="C:\GSD\wup_lokal\Novell Migration\Logonscript\Neu\netlogon-share\tools" ; TESTPFAD!
$confpath="%logonserver%\netlogon\config" ;Pfad zu den Config-Dateien
$toolpath="%logonserver%\netlogon\tools" ; Pfad zu den Loginscript-tools
; ... Eventlog- und Fehlermeldungen
$ev1 = "Fehler beim Oeffnen der groups_and_dirs.ini Suchpfad war: $confpath\groups_and_dirs.ini"
$ev2 = "Gruppenlaufwerk konnte nicht gemappt werden Benutzer ist keiner Benutzergruppe zugeordnet oder primaere Gruppe wurde nicht korrekt gesetzt! Primaere Gruppe des Users: @PRIMARYGROUP"
$ev3 = "Fehler beim Mappen des Gruppenlaufwerks Es wurde versucht m: auf \\$orga\$groupdir zu verbinden"
$ev4 = "Fehler beim Kopieren der Kodib - Datenbank von %logonserver%\netlogon\config\faelle2.mdb nach %HOMEDRIVE%%HOMEPATH%\windows "
$ev5 = "Fehler beim Kopieren der Datei 'sql.ini' von %logonserver%\netlogon\config\sql.ini nach %HOMEDRIVE%\windows"
$ev6 = "Fehler beim Kopieren der Datei saplogon.ini von %logonserver%\netlogon\config\saplogon.ini nach %HOMEDRIVE%\windows"
$ev7 = "Fehler Verbinden von N: auf \\KW-Verwaltung Fehler trat beim Ausfuehren des USE-Befehls (wie NET USE) auf."
$ev8 = "Fehler Verbinden von O: auf \\KW-Kliniken Fehler trat beim Ausfuehren des USE-Befehls (wie NET USE) auf."
$ev9 = "Fehler beim erstellen von Outlook-Profil Fehler trat beim Aufruf von %LOGONSERVER%\netlogon\tools\newprof.exe und %LOGONSERVER%\netlogon\config\outlook.prf auf."
$ev10 = "Fehler Verbinden von com1: auf \\client\com1"
$ev11 = "Fehler Anlegen oder Kopieren des KV-Ordners Fehler trat beim Anlegen des KV-Ordners in L: auf oder beim Kopieren der KV-Dateien auf."
$ev12 = "Fehler in Sektion :apps bei Befehl: Schreiben des aktuellen Clientnames in die sql.ini "
$ev13 = "Fehler in Sektion :apps bei Befehl: Setzen der Display-Variable fuer Orga und SAP "
$ev14 = "Fehler in Sektion :apps bei Befehl: Setzen der IE - Option FriendlyHttpErrors auf NO "
$ev15 = "Fehler in Sektion :apps bei Befehl: Aktivierung von TLS 1.0 im IE fuer den zugriff auf geschuetze bereiche "
$ev16 = "Fehler beim erstellen der newprof.txt Pfad war USERPROFILE%\Newprof.txt"
$ev17 = "Fehler beim Eintragen der Outlook.reg in die Registry."
$ev99 = "Das Logonscript wurde fehlerfrei ausgeführt."
; ..Terminalserversession abfragen / Ja=1/Nein=0
If InGroup ("TERMINALSERVERBENUTZER")
$tss=1
Color b+/n ? "Dies ist eine Terminalserversession." ? Color w/n
Else
$tss=0
EndIf
; ... allgemeine Befehle
; ...
Break ON ; Break OFF bewirkt, das beim absichtlichen Abbrechen des Scriptes der User automatisch abgemeldet wird
; settime "\\servername" ;synchronisiert die lokale Zeit mit Server oder Domaene
; ... Benutzer- und gruppenspezifische Pfade
; ....................................................................
; Einlesen der existierenden AD-Gruppen und der Gruppenverzeichnisse
; und Mappen bei Uebereinstimmung
; ...
; Oeffnen der groups_and_dirs.ini-Datei
If Open(2, "$confpath\groups_and_dirs.ini") = 0
While @ERROR = 0
; Einlesen der ini-datei und Aufbereiten der Daten
$grpstring = ReadLine(2) ; auslesen einer Zeile der ini-Datei
$grpstring = Trim($grpstring) ; vorhandene Leerzeichen loeschen
If $grpstring = "ende" GoTo weiter EndIf
$grparray = Split ($grpstring,",",3) ; Zeile in Bestandteile zerlegen
$group = $grparray[0]
$groupdir = $grparray[1]
If $grparray[2] = "v" $orga = "kw-verwaltung" Else $orga = "kw-kliniken" EndIf
; Ausgabe der eingelesenen Variablen (zu Testzwecken)
; ? "Prim.Gruppe: @PRIMARYGROUP | akt.Gruppe: $group | Dir: \\$orga\$groupdir"
; Primaere Gruppe abfragen und bei Uebereinstimmung Verzeichnis mappen
If $group = @PRIMARYGROUP
Use m: "\\$orga\$groupdir"
If @ERROR
ermes($ev3) ;Funktion 'ermes' aufrufen, siehe Scriptende fuer Erlaeuterung
GoTo weiter
Else
? "\\$orga\$groupdir auf M: verbunden."
EndIf
$succ=1
GoTo weiter
EndIf
Loop
Else
ermes($ev1)
GoTo allgmap
EndIf
:weiter
? Close (2) ; ini-Datei schliessen
If $succ=0 ermes($ev2) EndIf
:allgmap
; .. Allgemeine Verzeichnismappings
; ..
Use N: "\\KW-Verwaltung\verwaltung" $logonuser
If @ERROR ermes($ev7) Else ? "Laufwerk N: verbunden." EndIf
Use O: "\\KW-Kliniken\kliniken" $logonuser
If @ERROR ermes($ev8) Else ? "Laufwerk N: verbunden." EndIf
; ... Anwendungspezifische Befehle:
; .............................................................
; .. Windows-Verzeichniss bei Bedarf anlegen
; ..
If Exist ("%homedrive%\windows")=0
MD "%homedrive%\WINDOWS"
EndIf
; .. Userspezifische Kodip DB erzeugen, wenn sie nicht im Userhome Verzeichnis existiert
; ..
If Exist ("%HOMEDRIVE%%HOMEPATH%windows\faelle2.mdb")
? "Userspezifische Kodib DB ist vorhanden."
Else
Copy "$confpath\faelle2.mdb" "%HOMEDRIVE%%HOMEPATH%\windows\" /h
If @ERROR ermes($ev4) Else ? "Kodib-DB -kopiert." EndIf
EndIf
; .. Loeschen der SQL.INI im User Home
; .. und Kopieren der aktuellen SQL.INI
; ..
Del "%HOMEDRIVE%\windows\sql.ini"
Copy "$confpath\sql.ini" "%HOMEDRIVE%\windows\" /h
If @ERROR ermes($ev5) Else ? "sql.ini kopiert." EndIf
; .. Anlegen des KV Ordners und Kopieren der Dateien fuer ORGA KVK-Geraete
; ..
;Shell '%comspec% /c xcopy "%logonserver%\netlogon\config\KV" "%homedrive%\" /S /E /Y /I'
If Exist ("%homedrive%\KV")=0
MD "%homedrive%\KV"
If @ERROR ermes($ev11) Else ? "Kv-Ordner angelegt." EndIf
EndIf
Copy "$confpath\KV\*.*" "%homedrive%\KV\*.*" /h
If @ERROR ermes($ev11) Else ? "KV-Dateien kopiert." EndIf
; .. Kopieren der SAPlogon.ini
; ..
$RC = Copy "$confpath\saplogon.ini" "%HOMEDRIVE%\windows\"
If @ERROR ermes($ev6) Else ? "saplogon.ini kopiert." ? EndIf
:apps
; ...Eintragen der User und Geraete spezifischen Eintraege In der SQL.INI und der Registry
; .................................................................................................
; ... TS-Session ?
If $tss=0 ? "keine TS-Session." GoTo IEOPT EndIf ; folgendes nur bei Terminalserversession ausführen
; .. Mappt das ORGA Lesegeraet an COM1
If Exist ("com1:")=1
$RC = Shell '%comspec% /c net use com1: /delete'
EndIf
$RC = Shell '%comspec% /c net use com1: \\client\com1:'
If @ERROR ermes($ev10) else ? "Com1 wurde verbunden." EndIf
;Schreiben des aktuellen Clientnames in die sql.ini
WriteProfileString ("%HOMEDRIVE%\windows\sql.ini","win32client","clientname",%CLIENTNAME%)
If @ERROR ermes($ev12) Else ? "Clientname in sql.ini geschrieben." EndIf
;Setzen der Display-Variable fuer Orga und SAP
Set ("DISPLAY=%clientname%")
If @ERROR ermes($ev13) Else ? "Variable DISPLAY gesetzt." EndIf
; ...neues Outlook Profil anlegen
$RC = Shell "regedit /s " + $confpath + "\Outlook.reg"
If @ERROR ermes($ev17) Else ? "Outlook.reg eingelesen." EndIf
If Exist ("%USERPROFILE%\Newprof.txt")=1 GoTo ieopt EndIf
? "Neues Outlookprofil wird erstellt."
$RC = Shell $toolpath + "\newprof.exe -P " + $confpath + "\outlook.prf"
If @ERROR ermes($ev9) GoTo ieopt Else ? "Neues Profil wurde erstellt." EndIf
$RC = Open (3,"%USERPROFILE%\Newprof.txt",5) WriteLine (3,"Neues Profil erstellt am (Jahr/Monat/Tag): @date .") Close(3)
If @ERROR ermes($ev16) Else ? "Newprof.txt angelegt." EndIf
:IEOPT
;Setzen der IE - Option FriendlyHttpErrors auf NO
$RC = WriteValue("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main","Friendly http errors","no","Reg_SZ")
If @ERROR ermes($ev14) Else ? "IE-Regkey 1 gesetzt." EndIf
;Aktivierung von TLS 1.0 im IE fuer den zugriff auf geschuetze bereiche
$RC = WriteValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings","SecureProtocols","168","reg_dword")
If @ERROR ermes($ev15) else ? "IE-Regkey 2 gesetzt." EndIf
:end
; ...Scriptende
; ..............
If $ernr >= 1 ; wenn Fehlernummer größer 0, Script für 3 sec Anhalten damit Fehler gesehen werden
Beep Sleep 3
Else
If $tss = 0
LogEvent (0,100,$ev99,"","Logonscript")
Else
LogEvent (0,100,$ev99,"%CLIENTNAME%","Logonscript")
EndIf
EndIf
If KBHit () ; wenn Taste "a" gedrueckt wird, script anhalten
Get $key
If $key = "a" ?? "Angehalten. Taste druecken zum fortfahren..." Get $key EndIf
EndIf
? "taste druecken..." Get $taste ; zu Testzwecken
Exit
; ...Anhang
; ...Funktion definieren: 'ermes' = Fehlermeldung fuer Ausgabe im Scriptfenster kuerzen und Ausgeben
Function ermes($errvar)
$ernr = $ernr + 1 ;Fehlerzähler um 1 erhöhen
$message = Left("$errvar", 44) + "- siehe Eventlog! " ;Fehlermeldung kuerzen
Color y+/n ? "$message" Color w/n ;Ausgabe kurze Fehlermeldung im Scriptfenster
If $tss = 0
$x = LogEvent (1,$ernr,"$errvar","","Logonscript") ;Ausgabe lange Fehlermeldung im Eventlog
Else
$x = LogEvent (1,$ernr,"$errvar","%CLIENTNAME%","Logonscript") ;für TS-Session (Meldungen werden ins lokale Eventlog geschrieben)
EndIf
EndFunction
greetings, rob