Windows Tools
Citrixserver Neustart
Jeder Citrix-Admin mit einem 24Stunden Betrieb kennt das Dilemma mit den notwendigen Citrix-Server Neustarts (Citrix kann nicht besser laufen wie die Applikationen die darauf gehostet werden).Diese Batch dient zum geplanten, geordneten Neustart von Citrixservern aus einer Farm.
- Zentrale Steuerung über einfache Textdatei (Server.txt)
- Anmeldesperrung des Citrixservers
- Benachrichtigung an die betroffenen Anwender alle 30 Minuten für 28 Minuten
- Beendigung der Sitzungen auf dem Citrixserver (Textdatei mit den nicht abgemeldeten Usern zur Auswertung)
- Robocopy start ohne der bekannten Probleme mit gesperrten Dateien
- Anmeldefreigabe des Citrixservers mit Neustart.
Verwendete Programme
- TSLogins.exe
- Freeware von Ctrl-Alt-Del IT Consultancy - TSSessionNfo.exe
- Freeware von Ctrl-Alt-Del IT Consultancy - TSLogoff.exe
- Freeware von Ctrl-Alt-Del IT Consultancy - ROBOCOPY.EXE
- Freeware Microsoft
Batch
citrix_neustart.bat
@color 0A
@echo off
cls
rem ## Wochentag ermitteln
FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a
set /a "TwoDigitYearMax=2038%%1000"
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1
If %dow% equ 1 set "WoTa=Mo"
If %dow% equ 2 set "WoTa=Di"
If %dow% equ 3 set "WoTa=Mi"
If %dow% equ 4 set "WoTa=Do"
If %dow% equ 5 set "WoTa=Fr"
If %dow% equ 6 set "WoTa=Sa"
If %dow% equ 7 set "WoTa=So"
rem ## WoTa = %WoTa%
rem ## Welche Server sind betroffen
FOR /F "tokens=1,2" %%i in ('findstr /I "%WoTa%" server.txt') DO call aktion.bat %%j %WoTa%
rem ## Durchlauf beendet.
aktion.bat
set server=%1
set WoTa=%2
rem #### aktion.bat %server% %WoTa%
rem ## Welche Aktionen um aktuelle Uhrzeit (Stunde)
set h=%time:~0,2%
if "%h%"==" 0" goto Sperren
if "%h%"==" 1" goto Meldung
if "%h%"==" 2" goto Meldung
if "%h%"==" 3" goto Meldung
if "%h%"==" 4" goto Meldung
if "%h%"==" 5" goto Meldung
if "%h%"==" 6" goto Neustart
rem Keine Aktionen um diese Uhrzeit
goto ENDE
:Sperren
rem ## Server %server% sperren
TSLogins.exe /SERVER:%server% /OFF
:Meldung
rem ## Meldung an alle User des Servers %server%
TSSessionNFO * /SERVER:%server% > %server%.txt
FOR /F "tokens=4,*" %%i in ('find "Username Name" %server%.txt') DO Echo %%j
FOR /F "tokens=4,*" %%i in ('find "Username Name" %server%.txt') DO msg %%j /SERVER:%server% /TIME:1740 Dieser Citrixserver wird um 06:00 beendet, bitte starten Sie Ihr System (PC/Igel) neu!
goto ENDE
:Neustart
rem ## Neustart des Servers %server%
TSSessionNFO * /SERVER:%server% > %server%.txt
rem ## Alle Anwender vom Citrix beenden
TSLogoff * /SERVER:%server%
rem ## Robocopy fuer Siemens med starten
robocopy.exe \\Master01\PC_Kunde \\%server%\PC_Kunde /R:3 /W:3 /MIR
rem ## Anmeldung zulassen
FOR /F "tokens=1,3" %%i in ('findstr /I "%WoTa% %server%" server.txt') DO TSLogins.exe /SERVER:%server% /ON
rem ## Server Neustart
shutdown /r /m \\%server% /d p:4:1 /c "Citrix-Server Wartung Neustart"
goto ENDE
:ENDE
Steuerungsdatei zur Citrixserver Abschaltung/Neustart
| Syntax: | ||
| Mo Server E | ||
| Mo | = der entsprechende Wochentag wie Mo, Di, Mi, Do, Fr, Sa, So | |
| Server | = der Server der gemeint ist | |
| E | = Entsperrung des Servers (könnte nicht immer richtig sein [Update]) |
server.txt
Mo CTX01 E Di CTX02 E Mi CTX03 E Do CTX04 E Fr CTX05 E Sa So CTX01 E So CTX02 E So CTX03 E
Als Abfall entstehen Dateien über die Sessionen, die gesondert ausgewertet werden könnten.
%server%.txt
Process ALL Sessions on CTX04 server... TS Session ID: 0 TS Client Username Name: administrator TS WinStation Name: Console Warning: The User is on the console of the selected server. There is no more information. TS Session ID: 14 TS Client Username Name: station11 TS WinStation Name: ICA-tcp#134 TS Client Name: IGEL056 TS Client IP: 10.0.90.56 TS Application Name: #Desktop TS Initial Program: NONE TS Session ID: 8 TS Client Username Name: station12 TS WinStation Name: ICA-tcp#157 TS Client Name: MUEPC087 TS Client IP: 10.0.100.87 TS Application Name: #Stationsarbeitsplatz TS Initial Program: icast.exe h:\kkh\dll\wiwa0101.exe usw....
In diesem Beispiel muss noch der Taskplaner auf citrix_neustart.bat ab 00:05 bis 06:010 alle 30 Minuten eingerichtet werden, sollten andere Zeiten oder Abstände eingestellt werden muss die Batch angepasst werden.
Download
| Download: | Größe: | Version: | Programm: | Datum: |
| citrix-neustart.zip | 286 KByte | 1.00 | Citrix-Neustart + Programme |
28.02.2011 |

