[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