8
0
Files
Skriptentwickung/archive/ThinClient/Archiv/2.0.0/ThinClient.cmd
2024-01-24 16:42:38 +01:00

192 lines
8.7 KiB
Batchfile

@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.0
ECHO Letzte Aktualisierung: 05.10.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_UserLogin.cmd
SET DienstProgramm2Starten=0
SET DienstProgramm2Pfad="Pfad"
SET DienstProgramm2Datei=.exe
SET DienstProgramm3Starten=0
SET DienstProgramm3Pfad="Pfad"
SET DienstProgramm3Datei=.exe
SET IPTest=0
SET IPTest_Versuche=30
SET RDSTest=0
SET RDSTest_Versuche=30
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 Notwendige Anpassungen in der Windows Registry werden vollzogen.
reg export "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" "%CD%\MOD_HKLM_Boot_mit_ThinClient_Skript.reg" /y
if not %ERRORLEVEL% == 0 ECHO Registry Sicherung kann nicht erstellt werden, wechsle in den Benutzer Betrieb. && goto ThinClient_BenutzerBetrieb
reg import "%CD%\MOD_HKLM_Boot_ohne_ThinClient_Skript.reg"
ECHO -
ECHO Starte umfassendes Benutzer-Interface.
start explorer.exe C, "%CD%"
start "" /D "%CD%" ThinClient_AdministratorBetrieb_Hinweis.vbs
userinit
ECHO -
ECHO Anpassungen in der Windows Registry werden wiederrufen.
reg import "%CD%\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.
if %DienstProgramm1Starten% == 1 (start "DienstProgramm1" /D %DienstProgramm1Pfad% /min %DienstProgramm1Datei%)
REM ----------------------------------------------------------------------------------------
REM ----------------------------------------------------------------------------------------
if %DienstProgramm2Starten% == 1 ECHO - && ECHO Starte Hintergrund Dienstprogramm.
if %DienstProgramm2Starten% == 1 (start "DienstProgramm2" /D %DienstProgramm2Pfad% /min %DienstProgramm2Datei%)
REM ----------------------------------------------------------------------------------------
REM ----------------------------------------------------------------------------------------
if %DienstProgramm3Starten% == 1 ECHO - && ECHO Starte Hintergrund Dienstprogramm.
if %DienstProgramm3Starten% == 1 (start "DienstProgramm3" /D %DienstProgramm3Pfad% /min %DienstProgramm3Datei%)
REM ----------------------------------------------------------------------------------------
REM ----------------------------------------------------------------------------------------
:start_IPTest1
ECHO -
ECHO Ermittle ob lokaler PC/TC 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. && 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 PC/TC 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
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 Das System wird nun aufgrund eines Fehlers heruntergefahren.
ECHO -
ECHO Der Test welcher ermittelt, ob der PC/TC 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 PC/TC einen RDS-Server erreichen kann,
ECHO zeigt %RDSTest% Fehlversuch(e) auf, die maximale Toleranz liegt derzeit bei %RDSTest_Versuche%.
"%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
exit
REM ----------------------------------------------------------------------------------------