[Eisfair] Eisfair-1-Domäne und Loginscript

Jürgen Witt j-witt at web.de
Mo Mai 14 14:17:07 CEST 2012


Hallo NG,
ich habe bei einem Kunden von Zeit zu Zeit bei einigen PCs Probleme mit 
meinem Loginscript. D.h. es kommt dort zu erheblichen Wartezeiten 
(einige Minuten im schlimmsten Fall) beim Verbinden oder Überprüfen 
einiger Netzlaufwerke (die gruppenabhängig zugeordnet/verbunden werden). 
Diese Netzlaufwerke liegen aber alle auf dem gleichen (einzigen) Server. 
D.h. einige Laufwerksverknüpfungen werden schnell abgearbeitet und bei 
anderen dauert es manchmal ewig.

Das Loginscript sieht wie folgt aus:

echo off
echo ********************************************************
echo *                                                      *
echo *           Welcome to eisfair-Samba-Server            *
echo *                                                      *
echo ********************************************************

SET SRV=server

REM Synchronize the client's clock with the server.  Requires Power User 
rights
REM NET TIME \\%SRV% /SET /YES

REM Wechsele in das Stamm-Verzeichnis
c:
cd \

if not exist "%userprofile%\flag" md "%userprofile%\flag"
echo Starte logon.bat >> "%userprofile%\flag\log.txt"
echo %DATE% %TIME% >> "%userprofile%\flag\log.txt"

REM Verbinde das Homedir mit Laufwerk P: statt mit X:
REM echo Verbinde Laufwerk P:
REM SET NETSW=/YES
REM IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
REM IF EXIST X:*.* NET USE X: /DELETE /YES
REM IF EXIST P:*.* NET USE P: /DELETE /YES
REM NET USE X: /HOME %NETSW%

REM Ordner anlegen
IF NOT EXIST X:\Bilder MKDIR X:\Bilder
IF NOT EXIST X:\Desktop MKDIR X:\Desktop
IF NOT EXIST "X:\Eigene Dateien" MKDIR "X:\Eigene Dateien"
IF NOT EXIST X:\Downloads MKDIR X:\Downloads
IF NOT EXIST X:\Musik MKDIR X:\Musik
IF NOT EXIST X:\Videos MKDIR X:\Videos

echo Verbinde Laufwerk U:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST U:*.* NET USE U: /DELETE
NET USE U: \\%SRV%\public %NETSW%

echo Verbinde Laufwerk T:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST T:*.* NET USE T: /DELETE
NET USE T: \\%SRV%\transfer %NETSW%

echo Verbinde Laufwerk N:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST N:*.* NET USE N: /DELETE
NET USE N: \\%SRV%\backup %NETSW%

echo Verbinde Laufwerk L:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST L:*.* NET USE L: /DELETE
IF EXIST \\%SRV%\liefersv\ NET USE L: \\%SRV%\liefersv %NETSW%

echo Verbinde Laufwerk S:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST S:*.* NET USE S: /DELETE
IF EXIST \\%SRV%\kopien\ NET USE S: \\%SRV%\kopien %NETSW%

echo Verbinde Laufwerk M:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST M:*.* NET USE M: /DELETE
IF EXIST \\%SRV%\marketing\ NET USE M: \\%SRV%\marketing %NETSW%

echo Verbinde Laufwerk Q:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST Q:*.* NET USE Q: /DELETE
IF EXIST \\%SRV%\verwaltung\ NET USE Q: \\%SRV%\verwaltung %NETSW%

echo Verbinde Laufwerk R:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST R:*.* NET USE R: /DELETE
IF EXIST \\%SRV%\leitung\ NET USE R: \\%SRV%\leitung %NETSW%

echo Verbinde Laufwerk W:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST W:*.* NET USE W: /DELETE
IF EXIST \\%SRV%\finanzen\ NET USE W: \\%SRV%\finanzen %NETSW

echo Verbinde Laufwerk K:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST K:*.* NET USE K: /DELETE
IF EXIST \\%SRV%\baeckerei\ NET USE K: \\%SRV%\baeckerei %NETSW

echo Verbinde Laufwerk H:
SET NETSW=/YES
IF "%OS%"=="Windows_NT" SET NETSW=/PERSISTENT:NO %NETSW%
IF EXIST H:*.* NET USE H: /DELETE
IF EXIST \\%SRV%\hofl\ NET USE H: \\%SRV%\hofl %NETSW

%0\..\KIX32.EXE %0\..\login1.kix /f

rem call %1.bat

rem echo Starte userspezifisches Script
call \\%SRV%\netlogon\%1.bat


rem echo Starte gruppenspezifisches Script
rem call \\%SRV%\netlogon\%2.bat

Das Script login1.kix sieht so aus:

BREAK ON
;DEBUG ON
SETCONSOLE("show")
$ = SETTITLE("Domain Login")
;Color g+/n
;BOX (4,10,16,70,FULL)

;Color w+/n
;AT ( 4,23) " Ihre Daten "
;AT ( 5,25)
;AT ( 6,25) "Userid : "
;AT ( 7,25) "IP-Address : "
;AT (10,25) "Workstation : "
;AT (11,25) "Domain : "
;AT (12,25) "Logon Server : "
;AT (13,25) "Hostname : "

;Color y+/n
;AT ( 6,40) @userid
;AT ( 7,40) @IPAddress0 ; IP-Address Adapter 1
;AT ( 8,40) @IPAddress1 ; IP-Address Adapter 2
;AT (10,40) @wksta
;AT (11,40) @domain
;AT (12,40) @lserver
;AT (13,40) @Hostname


;IF @TIME > 00:01:00 AND @TIME < 11:00:00
;AT ( 18,00) "Guten Morgen @userid"
;ENDIF
;IF @TIME > 11:00:00 AND @TIME < 14:00:00
;AT ( 18,00) "Guten Tag @userid"
;ENDIF
;IF @TIME > 14:00:00 AND @TIME < 17:00:00
;AT ( 18,00) "Guten Tag @userid"
;ENDIF
;IF @TIME > 17:01:00 AND @TIME < 23:59:00
;AT ( 18,00) "Guten Abend @userid"
;ENDIF

?
?"Dieses Fenster schliesst automatisch"
?

	?
	?"Prüfen der Version des Betriebssystems"

	; Check which OS is running to apply settings and policies accordingly
	$ntversion = READVALUE("HKLM\SOFTWARE\Microsoft\Windows 
NT\CurrentVersion\", "CurrentVersion")
	IF $ntversion = "6.1" ;Windows 7
	? "Sie verwenden Windows 7"
	ENDIF

	IF $ntversion = "5.1" ;Windows XP
	? "Sie verwenden Windows XP"
	$drc = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows 
NT\CurrentVersion\Winlogon"
	$ = WriteValue($drc, "DeleteRoamingCache", "00000000", "REG_DWORD")
	$FolderRedirect = 
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User 
Shell Folders"
	$ = WriteValue($FolderRedirect, "Personal", "X:\Eigene Dateien", 
"REG_EXPAND_SZ")
	$ = WriteValue($FolderRedirect, "My Pictures", "X:\Bilder", 
"REG_EXPAND_SZ")
	$ = WriteValue($FolderRedirect, "My Music", "X:\Musik", "REG_EXPAND_SZ")
	$FolderRedirect2 = 
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell 
Folders"
	$ = WriteValue($FolderRedirect2, "Personal", "X:\Eigene Dateien", "REG_SZ")
	$ = WriteValue($FolderRedirect2, "My Pictures", "X:\Bilder", "REG_SZ")
	$ = WriteValue($FolderRedirect2, "My Music", "X:\Musik", "REG_SZ")
	ENDIF


Mehr Informationen über die Mailingliste Eisfair