Anlage des Repos
This commit is contained in:
217
archive/ThinClient/ThinClient.cmd
Normal file
217
archive/ThinClient/ThinClient.cmd
Normal file
@@ -0,0 +1,217 @@
|
||||
@ECHO OFF
|
||||
TITLE DIGITAL DATA - ThinClient Steuerungsskript
|
||||
|
||||
ECHO Stapelverarbeitungsprogramm
|
||||
ECHO ThinClient Steuerungsskript
|
||||
ECHO -
|
||||
ECHO Digital Data
|
||||
ECHO Ludwig-Rinn-Strasse 16
|
||||
ECHO 35452 Heuchelheim
|
||||
ECHO Tel.: 0641 / 202360
|
||||
ECHO E-Mail: info@didalog.de
|
||||
ECHO -
|
||||
ECHO Version 2.1.0
|
||||
ECHO Letzte Aktualisierung: 01.11.2012
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
REM Definition der Variablen.
|
||||
|
||||
SET RDSSrv01=192.168.0.1
|
||||
IF "%1"=="" GOTO RDSSrv01_KeinParameterAufruf
|
||||
SET RDSSrv01=%1
|
||||
:RDSSrv01_KeinParameterAufruf
|
||||
|
||||
SET RDSSrv02=192.168.0.2
|
||||
IF "%2"=="" GOTO RDSSrv02_KeinParameterAufruf
|
||||
SET RDSSrv02=%2
|
||||
:RDSSrv02_KeinParameterAufruf
|
||||
|
||||
SET RDSSrv03=192.168.0.3
|
||||
IF "%3"=="" GOTO RDSSrv03_KeinParameterAufruf
|
||||
SET RDSSrv03=%3
|
||||
:RDSSrv03_KeinParameterAufruf
|
||||
|
||||
SET ThinClient=%CD%
|
||||
SET LokalerAdministrator=Administrator
|
||||
|
||||
SET DienstProgramm1Starten=1
|
||||
SET DienstProgramm1Pfad=%ThinClient%
|
||||
SET DienstProgramm1Datei=ThinClient_Benutzereinstellungen.cmd
|
||||
|
||||
SET DienstProgramm2Starten=0
|
||||
SET DienstProgramm2Pfad="Pfad"
|
||||
SET DienstProgramm2Datei=.exe
|
||||
|
||||
SET DienstProgramm3Starten=0
|
||||
SET DienstProgramm3Pfad="Pfad"
|
||||
SET DienstProgramm3Datei=.exe
|
||||
|
||||
SET IPTest=-1
|
||||
SET IPTest_Versuche=30
|
||||
|
||||
SET RDSTest=0
|
||||
SET RDSTest_Versuche=30
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
ECHO -
|
||||
ECHO Ermittle ob IP-Tests und Dienstprogramme aufgerufen werden sollen.
|
||||
IF "%4"=="" ECHO Standard-Start wird eingeleitet. IP-Tests und Dienstprogramme werden aufgerufen.
|
||||
IF "%4"== start_RDSTest ECHO IP-Tests und Dienstprogramme werden nicht erneut aufgerufen. && goto %4
|
||||
IF ThinClient_AdministratorBetrieb == "%4" ECHO Starte ohne vorhergehenden Test, direkt in den Administrator-Modus. && goto %4
|
||||
IF ThinClient_BenutzerBetriebt == "%4" ECHO Starte ohne vorhergehenden Test, direkt in den Benutzer-Modus && goto %4
|
||||
IF shutdown_geplant == "%4" ECHO Gehe direkt zum geplanten Herunterfahren des ThinClients. && goto %4
|
||||
IF shutdown_ungeplant == "%4" ECHO Gehe direkt zum ungeplanten Herunterfahren des ThinClients. && goto %4
|
||||
IF NOT "%4"=="" ECHO Sprungmarke "%4" wird angesteuert. && goto %4
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
ECHO -
|
||||
ECHO Ermittle das aktuell angemeldete Benutzerkonto.
|
||||
IF %username% == %LokalerAdministrator% goto ThinClient_AdministratorBetrieb
|
||||
IF NOT %username% == %LokalerAdministrator% goto ThinClient_BenutzerBetrieb
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
:ThinClient_AdministratorBetrieb
|
||||
ECHO -
|
||||
ECHO Starte ThinClient im Administrator-Modus.
|
||||
ECHO Notwendige Anpassungen in der Windows Registry werden vollzogen.
|
||||
IF EXIST "%ThinClient%\MOD_HKLM_Boot_mit_ThinClient_Skript.reg" del "%ThinClient%\MOD_HKLM_Boot_mit_ThinClient_Skript.reg"
|
||||
reg export "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" "%ThinClient%\MOD_HKLM_Boot_mit_ThinClient_Skript.reg"
|
||||
if not %ERRORLEVEL% == 0 ECHO Registry Sicherung kann nicht erstellt werden, wechsle in den Benutzer Betrieb. && goto ThinClient_BenutzerBetrieb
|
||||
REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon" /v Shell /t REG_SZ /d "explorer.exe" /F
|
||||
|
||||
ECHO -
|
||||
ECHO Starte umfassendes Benutzer-Interface.
|
||||
start "" /D "%ThinClient%" ThinClient_AdministratorBetrieb_Hinweis.vbs
|
||||
userinit
|
||||
start explorer.exe /e, "%ThinClient%"
|
||||
|
||||
ECHO -
|
||||
ECHO Anpassungen in der Windows Registry werden wiederrufen.
|
||||
reg import "%ThinClient%\MOD_HKLM_Boot_mit_ThinClient_Skript.reg"
|
||||
exit
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
:ThinClient_BenutzerBetrieb
|
||||
ECHO -
|
||||
ECHO Starte ThinClient im Benutzer-Modus.
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
if %DienstProgramm1Starten% == 1 ECHO - && ECHO Starte Hintergrund Dienstprogramm Nr 1.
|
||||
if %DienstProgramm1Starten% == 1 (start "DienstProgramm1" /D "%DienstProgramm1Pfad%" /min %DienstProgramm1Datei%)
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
if %DienstProgramm2Starten% == 1 ECHO - && ECHO Starte Hintergrund Dienstprogramm Nr 2.
|
||||
if %DienstProgramm2Starten% == 1 (start "DienstProgramm2" /D "%DienstProgramm2Pfad%" /min %DienstProgramm2Datei%)
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
if %DienstProgramm3Starten% == 1 ECHO - && ECHO Starte Hintergrund Dienstprogramm Nr 3.
|
||||
if %DienstProgramm3Starten% == 1 (start "DienstProgramm3" /D "%DienstProgramm3Pfad%" /min %DienstProgramm3Datei%)
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
:start_IPTest1
|
||||
ECHO -
|
||||
ECHO Ermittle ob lokaler ThinClient eine IP Adresse bezogen hat (Windows ab Vista).
|
||||
if /I %IPTest% GEQ %IPTest_Versuche% goto shutdown_ungeplant
|
||||
for /F "tokens=12,*" %%i in ('ipconfig^|find "IPv4-Adresse"') do SET IPAdresse=%%j
|
||||
Ping -n 1 %IPAdresse%>NUL
|
||||
if %ERRORLEVEL% == 0 ECHO IPv4-Eintrag gefunden. && (SET /a IPTest=%IPTest%+1) && goto start_RDSTest
|
||||
if %ERRORLEVEL% == 1 (SET /a IPTest=%IPTest%+1) && ECHO Kein IPv4-Eintrag gefunden, ggf. ist dies ein Windows XP OS. && goto start_IPTest2
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
:start_IPTest2
|
||||
ECHO Ermittle ob lokaler ThinClient eine IP Adresse bezogen hat (Windows bis XP).
|
||||
if /I %IPTest% GEQ %IPTest_Versuche% goto shutdown_ungeplant
|
||||
for /F "tokens=13,*" %%i in ('ipconfig^|find "IP-Adresse"') do SET IPAdresse=%%j
|
||||
Ping -n 1 %IPAdresse%>NUL
|
||||
if %ERRORLEVEL% == 0 ECHO IP-Eintrag gefunden, fahre fort. && goto start_RDSTest
|
||||
if %ERRORLEVEL% == 1 (SET /a IPTest=%IPTest%+1) && goto start_IPTest1
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
:start_RDSTest
|
||||
if %RDSTest% == %RDSTest_Versuche% goto shutdown_ungeplant
|
||||
ECHO -
|
||||
ECHO Starte Verbindungsversuch(e) zum RDS-Server(n).
|
||||
ECHO -
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
ECHO Ermittle ob der erster RDS-Server erreichbar ist.
|
||||
Ping -n 1 %RDSSrv01%>NUL
|
||||
if %ERRORLEVEL% == 0 SET RDSSrv=%RDSSrv01% && ECHO Erster RDS-Server ist erreichbar. && goto connect_RDSSrv
|
||||
if not %ERRORLEVEL% == 0 ECHO Erster RDS-Server ist nicht erreichbar.
|
||||
ECHO -
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
ECHO Ermittle ob der zweiter RDS-Server erreichbar ist.
|
||||
ping -n 1 %RDSSrv02%>NUL
|
||||
if %ERRORLEVEL% == 0 SET RDSSrv=%RDSSrv02% && ECHO Zweiter RDS-Server ist erreichbar. && goto connect_RDSSrv
|
||||
if not %ERRORLEVEL% == 0 ECHO Zweiter RDS-Server ist nicht erreichbar.
|
||||
ECHO -
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
ECHO Ermittle ob der dritte RDS-Server erreichbar ist.
|
||||
ping -n 1 %RDSSrv03%>NUL
|
||||
if %ERRORLEVEL% == 0 SET RDSSrv=%RDSSrv03% && ECHO Dritter RDS-Server ist erreichbar. && goto connect_RDSSrv
|
||||
if not %ERRORLEVEL% == 0 ECHO Dritter RDS-Server ist nicht erreichbar.
|
||||
ECHO -
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
ECHO Es konnte keine Verbindung zu einem RDS-Server hergestellt werden.
|
||||
if not %ERRORLEVEL% == 0 (SET /a RDSTest=%RDSTest%+1) && ECHO Wiederhole Verbindungsversuch(e) zum RDS-Server(n). && goto start_RDSTest
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
:connect_RDSSrv
|
||||
ECHO Die Verbindung wird nun hergestellt.
|
||||
%windir%\system32\mstsc.exe ThinClient.rdp /f /v: %RDSSrv%
|
||||
ECHO Die Verbindung wurde beendet.
|
||||
ECHO -
|
||||
goto shutdown_geplant
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
:shutdown_geplant
|
||||
start "" /D "%ThinClient%" /WAIT "ThinClient_BenutzerBetrieb_Abfrage.vbs" %0 %RDSSrv01% %RDSSrv02% %RDSSrv03%
|
||||
ECHO Das System wird nun heruntergefahren.
|
||||
"%windir%\system32\shutdown.exe" -s -t 0 /c "Die Sitzung auf dem RDS-Server wurde wie geplant beendet."
|
||||
pause
|
||||
exit
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
:shutdown_ungeplant
|
||||
ECHO -
|
||||
ECHO Das System wird nun aufgrund eines Fehlers heruntergefahren.
|
||||
ECHO -
|
||||
ECHO Der Test welcher ermittelt, ob der ThinClient eine IP Adresse besitzt,
|
||||
ECHO zeigt %IPTest% Fehlversuch(e) auf, die maximale Toleranz liegt derzeit bei %IPTest_Versuche%.
|
||||
ECHO -
|
||||
ECHO Der Test welcher ermittelt, ob der ThinClient einen RDS-Server erreichen kann,
|
||||
ECHO zeigt %RDSTest% Fehlversuch(e) auf, die maximale Toleranz liegt derzeit bei %RDSTest_Versuche%.
|
||||
ECHO -
|
||||
"%windir%\system32\shutdown.exe" -s -t 60 /c "Fehler: Netzwerkverbindung unterbrochen oder kein RDS-Server erreichbar. Bitte wenden Sie sich an Ihren Systemadministrator!"
|
||||
ECHO -
|
||||
pause
|
||||
|
||||
ECHO Wollen Sie das herunterfahren des ThinClients abbrechen um weitere Diagnosen vorzunehmen?
|
||||
set /p RebootCMD=Soll der Neustart nun abgebrochen werden? (J/N)
|
||||
if "%RebootCMD%" == "J" %windir%\system32\shutdown.exe -a && ECHO - && ECHO Das Herunterfahren wurde abgebrochen, starte Windows TaskManager. && start "TaskManager" /D "%windir%\system32" taskmgr.exe
|
||||
if "%RebootCMD%" == "j" %windir%\system32\shutdown.exe -a && ECHO - && ECHO Das Herunterfahren wurde abgebrochen, starte Windows TaskManager. && start "TaskManager" /D "%windir%\system32" taskmgr.exe
|
||||
if not "%RebootCMD%" == "J" && ECHO Bitte starten Sie den ThinClient manuell neu! && ECHO -
|
||||
if not "%RebootCMD%" == "j" && ECHO Bitte starten Sie den ThinClient manuell neu! && ECHO -
|
||||
pause
|
||||
exit
|
||||
REM --------------------------------------------------------------
|
||||
Reference in New Issue
Block a user