<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://znil.net/index.php?action=history&amp;feed=atom&amp;title=JumpingProfiles%3AJPProfileReset</id>
	<title>JumpingProfiles:JPProfileReset - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=JumpingProfiles%3AJPProfileReset"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=JumpingProfiles:JPProfileReset&amp;action=history"/>
	<updated>2026-05-08T02:43:48Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=JumpingProfiles:JPProfileReset&amp;diff=9195&amp;oldid=prev</id>
		<title>BLinz: Textersetzung - „&lt;comments&gt;“ durch „&lt;comments /&gt;“</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=JumpingProfiles:JPProfileReset&amp;diff=9195&amp;oldid=prev"/>
		<updated>2017-08-06T18:47:53Z</updated>

		<summary type="html">&lt;p&gt;Textersetzung - „&amp;lt;comments&amp;gt;“ durch „&amp;lt;comments /&amp;gt;“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
[[Kategorie:JPUser.dat]]&lt;br /&gt;
[[Kategorie:JumpingProfiles]]&lt;br /&gt;
[[Kategorie:ZnilTools]]&lt;br /&gt;
Ein Kunde wollte das die Benutzer sich Ihr Profil auch selbst zurück setzen können.&amp;lt;br&amp;gt;&lt;br /&gt;
Zurücksetzen bedeutet in diesem Fall das die &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; gelöscht bzw. umbenannt wird.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das wird leider bei jeder Art von Problemen gerne von den Admins gemacht - wenn dies bei einem Benutzer andauernd nötig ist sollte eigentlich die Ursache erforscht und behoben werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn der Benutzer es aber einfach mal wieder verkonfiguriert hat ist es wirklich der leichteste Weg.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mit dem Löschen der &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; werden nur die Registry-Informationen gelöscht. Die restlichen Dateien und Ordner, z.B. die Favoriten oder die &amp;lt;code&amp;gt;Normal.dot&amp;lt;/code&amp;gt; von Wor bleiben dabei erhalten.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Den Benutzern wird eine weitere Citrix-Applikation veröffentlicht - die &amp;lt;code&amp;gt;JP_ProfileReset.exe&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese startet und präsentiert den Benutzer zunächst 2 Schaltflächen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:JP_ProfileReset-001.png]] - [[Datei:JP_ProfileReset-002.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mit einem Klick auf {{key|RESET}} passiert folgendes:&amp;lt;br&amp;gt;&lt;br /&gt;
* es wird eine Datei &amp;lt;code&amp;gt;_cleanup_&amp;lt;/code&amp;gt; im JumpingProfile-Verzeichnis des Benutzers erstellt (also dort wo auch die JPUser.dat liegt)&lt;br /&gt;
* Der Benutzer bekommt bei Erfolg eine Meldung angezeigt das er nun von allen Citrix-Sitzungen abgemeldet wird (siehe 2. Bild zuvor)&lt;br /&gt;
* Es wird eine &amp;quot;Bitte Warten&amp;quot; Meldung angezeigt. Im Hintergrund läuft ein Skript an ( [[Terminalserver - Benutzer soll sich selbst von allen anderen Servern abmelden]] ) welches den Benutzer von allen Servern abmeldet.&lt;br /&gt;
* Danach beendet sich das Programm und erzwingt eine Abmeldung der aktuellen Sitzung.&lt;br /&gt;
* Bei der nächsten Anmeldung wertet ein Skript aus ob eine &amp;lt;code&amp;gt;_cleanup_&amp;lt;/code&amp;gt; vorhanden ist.&lt;br /&gt;
** Wenn ja wird eine eventuell vorhandene &amp;lt;code&amp;gt;JPUser.dat.OLD&amp;lt;/code&amp;gt; gelöscht&lt;br /&gt;
** und die &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/JPUser.dat.OLD&amp;lt;/code&amp;gt; umbenannt.&lt;br /&gt;
** Des weiteren werden allen eventuell noch vorhandenen Session-Cookies gelöscht&lt;br /&gt;
** und die &amp;lt;code&amp;gt;_cleanup_&amp;lt;/code&amp;gt; wird gelöscht&lt;br /&gt;
* Dann wird &amp;lt;code&amp;gt;JPLogin.exe&amp;lt;/code&amp;gt; gestartet&lt;br /&gt;
** Diese erzeugt dann eine neue, leere &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Falls &amp;lt;code&amp;gt;JP_ProfileReset.exe&amp;lt;/code&amp;gt; gestartet wird und schon eine &amp;lt;code&amp;gt;JPUser.dat.OLD&amp;lt;/code&amp;gt; vorhanden ist, wird eine zusätzliche Schaltfläche angezeigt.&lt;br /&gt;
:[[Datei:JP_ProfileReset-003.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
* Über der Schaltfläche steht das letzte Änderungsdatum / Uhrzeit der Sicherung&lt;br /&gt;
* Mit einem Klick auf die Schaltfläche passiert das gleiche wie beim Reset - nur das in diesem Fall &lt;br /&gt;
** die aktuelle &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; gelöscht&lt;br /&gt;
** die &amp;lt;code&amp;gt;JPUser.dat.OLD&amp;lt;/code&amp;gt; wieder in &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; umbenannt wird.&amp;lt;br&amp;gt;&lt;br /&gt;
* Auslöser ist hier eine &amp;lt;code&amp;gt;_restore_&amp;lt;/code&amp;gt; Datei im JumpingProfiles-Verzeichnis des Benutzers&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Vorbereitung==&lt;br /&gt;
Egal nach welcher Methode die &amp;lt;code&amp;gt;JPLogin.exe&amp;lt;/code&amp;gt; bisher gestartet wurde - wir müssen den Aufruf ersetzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Statt dem direkten Aufruf der &amp;lt;code&amp;gt;JPLogin.exe&amp;lt;/code&amp;gt; müssen wir nun ein Skript starten. Das muss so sein - schliesslich müssen wir eventuelle Aktionen wie Löschen oder Wiederherstellen durchführen bevor JumpingProfiles gestartet wird.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die möglichen Start-Arten findet Ihr hier: [[JumpingProfiles:StartenJPLogin|Aufruf von JPLogin.exe bei Anmeldung]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ersetzt den Start durch folgendes Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Download:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; [[Media:JPLogin.zip|JPLogin.zip]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;DOS&amp;quot;&amp;gt;&lt;br /&gt;
@echo off&lt;br /&gt;
REM 2014 Bernhard Linz / DATAGROUP Bremen GmbH / Bernhard.Linz@datagroup.de&lt;br /&gt;
REM JPLogin.exe wird nicht mehr direkt gestartet sondern diese JPLogin.cmd&lt;br /&gt;
REM Diese wurde statt der .exe auf den Servern in der Registry eingtragen&lt;br /&gt;
REM Grund ist das die App &amp;quot;JP_ProfileReset&amp;quot; uns eventuell eine Datei &amp;quot;_cleanup_&amp;quot; &lt;br /&gt;
REM hinterlegt - dann möchte der Benutzer ein Profil-Reset, also eine leere JPUser.dat&lt;br /&gt;
REM das müssen wir vor dem Start prüfen&lt;br /&gt;
REM&lt;br /&gt;
REM #############################################################################&lt;br /&gt;
REM Setup&lt;br /&gt;
REM&lt;br /&gt;
REM Pfad zu der Freigabe mit den Benutzerordnern&lt;br /&gt;
set JPNETWORKSHARE=\\server\Freigabe\&lt;br /&gt;
REM muss an den Benutzernamen noch etwas angehängt werden? z.B. Domäne? Wenn nicht Zeile auskommentieren oder alles hinter dem = löschen&lt;br /&gt;
REM set JPDOMSUFFIX=.domain.suffix&lt;br /&gt;
REM Und der Pfad zur JPLogin.exe&lt;br /&gt;
set JPLOGINEXEPATH=\\server\Freigabe\JP\JPLogin.exe&lt;br /&gt;
&lt;br /&gt;
REM #############################################################################&lt;br /&gt;
REM Hauptprogramm&lt;br /&gt;
REM&lt;br /&gt;
REM *** Check if we want a Profile Restore&lt;br /&gt;
if EXIST &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\_restore_&amp;quot; (&lt;br /&gt;
	REM Yes, Cleanup Profile&lt;br /&gt;
	if EXIST &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JPUser.dat.OLD&amp;quot; (&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JPUser.dat&amp;quot; /F /Q&lt;br /&gt;
		move &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JPUser.dat.OLD&amp;quot; &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JPUser.dat&amp;quot;&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\Sessions\*&amp;quot; /F /Q&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\_restore_&lt;br /&gt;
		REM für die ganz schlauen die das Programm mehrmals starten und beides anklicken - Nicht mit uns!&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\_cleanup_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	) else (&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\_restore_&lt;br /&gt;
		REM für die ganz schlauen die das Programm mehrmals starten und beides anklicken - Nicht mit uns!&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\_cleanup_&amp;quot;&lt;br /&gt;
	)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
REM *** Check if we want a Profile Cleanup&lt;br /&gt;
if EXIST &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\_cleanup_&amp;quot; (&lt;br /&gt;
	REM Yes, Cleanup Profile&lt;br /&gt;
	if EXIST &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JP_ProfileRefresher.exe&amp;quot; (&lt;br /&gt;
		&amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JP_ProfileRefresher.exe&amp;quot; &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JPUser.dat&amp;quot;&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\_cleanup_&amp;quot;&lt;br /&gt;
	) else (&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JPUser.dat.OLD&amp;quot; /F /Q&lt;br /&gt;
		move &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JPUser.dat&amp;quot; &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\JPUser.dat.OLD&amp;quot;&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\Sessions\*&amp;quot; /F /Q&lt;br /&gt;
		del &amp;quot;%JPNETWORKSHARE%\%USERNAME%%JPDOMSUFFIX%\JumpingProfile\_cleanup_&amp;quot;&lt;br /&gt;
	)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
REM *** Start JumpingProfiles&lt;br /&gt;
%JPLOGINEXEPATH%&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Skript ist darauf Vorbereitet falls die Benutzerverzeichnisse nicht &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Benutzername&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; sondern &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Benutzername.domäne.suffix&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; lauten. Dies ist z.B. der Fall falls die Home-Verzeichnisse der Benutzer über eine Gruppenrichtlinie angelegt werden (bitte nicht mit einer Ordnerumleitung verwechseln, das ist etwas anderes)&amp;lt;br&amp;gt;&lt;br /&gt;
Eventuell ist euch auch der Aufruf der &amp;lt;code&amp;gt;JP_ProfileRefresher.exe&amp;lt;/code&amp;gt; aufgefallen - dies ist ein anderes Tool von mir welches ale Schlüssel in der &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; löscht - bis auf festgelegte Ausnahmen. Das der Aufruf hier drin ist schadet aber nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==JP_ProfileReset.exe==&lt;br /&gt;
Legt einfach eine Freigabe an bzw. einen weiteren Ordner unterhalb der zentralen JumpingProfiles Freigabe.&amp;lt;br&amp;gt;&lt;br /&gt;
In diesen Ordner kopiert Ihr die folgenden Dateien:&amp;lt;br&amp;gt;&lt;br /&gt;
* Die &amp;lt;code&amp;gt;JP_ProfileReset.exe&amp;lt;/code&amp;gt; - Download: [[Media:JP_ProfileReset.zip|JP_ProfileReset.zip]]&lt;br /&gt;
* Ein Skript mit dem Namen &amp;lt;code&amp;gt;logoffallserver.cmd&amp;lt;cmd&amp;gt; - Beschreibung siehe [[Terminalserver - Benutzer soll sich selbst von allen anderen Servern abmelden|hier]], Download: [[Media:Logoffallserver.zip|Logoffallserver.zip]]&lt;br /&gt;
** In dem Skript müsst Ihr am Anfang die Namen eurer Terminalserver eintragen - Alle auf denen die Benutzer angemeldet sein könnten. Um z.B. die Liste zu erhalten meldet euch als Administrator auf einem eurer Server an und führt den Befehl &amp;lt;code&amp;gt;qfarm&amp;lt;/code&amp;gt; aus.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Citrix veröffentlicht Ihr nun eine neue Applikation welche auf die &amp;lt;code&amp;gt;JP_ProfileReset.exe&amp;lt;/code&amp;gt; zeigt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Und dann Testen! &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Quellcode der JP_ProfilReset.exe==&lt;br /&gt;
Das Programm habe ich - wie so vieles - mit AutoIt geschrieben ( http://www.AutoIt.de oder https://www.autoitscript.com/site/autoit/ )&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;AutoIt&amp;quot;&amp;gt;&lt;br /&gt;
#NoTrayIcon&lt;br /&gt;
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****&lt;br /&gt;
#AutoIt3Wrapper_Icon=Esch2.ico&lt;br /&gt;
#AutoIt3Wrapper_UseUpx=n&lt;br /&gt;
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****&lt;br /&gt;
Opt(&amp;#039;MustDeclareVars&amp;#039;, 1)&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;StaticConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dim $FormJP_ProfileReset, $GroupBox1, $Label_FR1, $Label_FR2, $Label_Linie1, $Label_Linie2, $Label_EN1, $Label_EN2, $Label_DE1, $Label_DE2, $Button_RESET, $Button_CANCEL, $nMsg&lt;br /&gt;
Dim $s_Homeshare&lt;br /&gt;
$s_Homeshare = EnvGet(&amp;quot;HOMESHARE&amp;quot;)&lt;br /&gt;
Dim $s_JPProfileResetFile = $s_Homeshare &amp;amp; &amp;quot;\JumpingProfile\_cleanup_&amp;quot;&lt;br /&gt;
Dim $s_JPProfileRestoreFile = $s_Homeshare &amp;amp; &amp;quot;\JumpingProfile\_restore_&amp;quot;&lt;br /&gt;
Dim $h_JPProfileResetOrRestoreFile&lt;br /&gt;
Dim $s_logoffallserverSkript = @ScriptDir &amp;amp; &amp;quot;\logoffallserver.cmd&amp;quot;&lt;br /&gt;
Dim $FormLogoff, $Label_Logoff1, $Label_Logoff2, $Label_Logoff3, $Button_Restore, $Label_Backup&lt;br /&gt;
Dim $a_TimeBackupFile&lt;br /&gt;
Dim $b_showRestore = False&lt;br /&gt;
&lt;br /&gt;
#Region ### START Koda GUI section ### Form=D:\Dropbox\_AutoIt\JumpingProfiles\FormJP_ProfileReset.kxf&lt;br /&gt;
$FormJP_ProfileReset = GUICreate(&amp;quot;Réinitialiser le profil / Reset Profil(e)&amp;quot;, 408, 414, -1, -1, -1, BitOR($WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))&lt;br /&gt;
GUISetBkColor(0xA6CAF0)&lt;br /&gt;
$GroupBox1 = GUICtrlCreateGroup(&amp;quot;&amp;quot;, 5, 1, 395, 223)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Label_FR1 = GUICtrlCreateLabel(&amp;quot;Cliquez sur &amp;#039;&amp;#039;RESET&amp;#039;&amp;#039;&amp;quot;, 9, 12, 390, 23, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 14, 400, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Label_FR2 = GUICtrlCreateLabel(&amp;quot;pour Réinitialiser à votre profil&amp;quot;, 9, 38, 390, 29, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 14, 400, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Label_Linie1 = GUICtrlCreateLabel(&amp;quot;------------------------------------------------------------------&amp;quot;, 9, 58, 390, 23, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 14, 400, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Label_EN1 = GUICtrlCreateLabel(&amp;quot;Click on &amp;#039;&amp;#039;RESET&amp;#039;&amp;#039;&amp;quot;, 9, 82, 390, 23, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 14, 400, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Label_EN2 = GUICtrlCreateLabel(&amp;quot;to reset your profile&amp;quot;, 9, 113, 390, 23, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 14, 400, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Label_Linie2 = GUICtrlCreateLabel(&amp;quot;------------------------------------------------------------------&amp;quot;, 9, 140, 390, 23, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 14, 400, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Label_DE1 = GUICtrlCreateLabel(&amp;quot;Klicken Sie auf &amp;#039;&amp;#039;RESET&amp;#039;&amp;#039; &amp;quot;, 9, 160, 390, 23, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 14, 400, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Label_DE2 = GUICtrlCreateLabel(&amp;quot;um Ihr Profil zurück zu setzen&amp;quot;, 9, 188, 390, 29, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 14, 400, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
GUICtrlCreateGroup(&amp;quot;&amp;quot;, -99, -99, 1, 1)&lt;br /&gt;
$Button_RESET = GUICtrlCreateButton(&amp;quot;RESET&amp;quot;, 5, 233, 195, 73)&lt;br /&gt;
GUICtrlSetFont(-1, 17, 800, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetColor(-1, 0xFF0000)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Button_CANCEL = GUICtrlCreateButton(&amp;quot;CANCEL&amp;quot;, 205, 233, 195, 73)&lt;br /&gt;
GUICtrlSetFont(-1, 17, 800, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetColor(-1, 0x008000)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)&lt;br /&gt;
$Button_Restore = GUICtrlCreateButton(&amp;quot;Restaurer / Restore / Wiederherstellen&amp;quot;, 5, 337, 395, 73)&lt;br /&gt;
GUICtrlSetFont(-1, 15, 800, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetColor(-1, 0x0000FF)&lt;br /&gt;
$Label_Backup = GUICtrlCreateLabel(&amp;quot;Backup-Date: 20.10.2014 - 11:27:44&amp;quot;, 5, 312, 395, 23)&lt;br /&gt;
GUICtrlSetFont(-1, 15, 800, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetColor(-1, 0x0000FF)&lt;br /&gt;
GUISetState(@SW_SHOW)&lt;br /&gt;
#EndRegion ### END Koda GUI section ###&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Region ### START Koda GUI section ### Form=D:\Dropbox\_AutoIt\JumpingProfiles\FormLogoff.kxf&lt;br /&gt;
$FormLogoff = GUICreate(&amp;quot;FormLogoff&amp;quot;, 555, 297, -1, -1, BitOR($WS_SYSMENU,$WS_POPUP), BitOR($WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))&lt;br /&gt;
GUISetCursor (15)&lt;br /&gt;
$Label_Logoff1 = GUICtrlCreateLabel(&amp;quot;Veuillez patienter un instant, s&amp;#039;il vous plaît.&amp;quot;, 6, 24, 534, 29, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 15, 800, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetCursor (-1, 15)&lt;br /&gt;
$Label_Logoff2 = GUICtrlCreateLabel(&amp;quot;Please wait a moment.&amp;quot;, 6, 122, 534, 29, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 15, 800, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetCursor (-1, 15)&lt;br /&gt;
$Label_Logoff3 = GUICtrlCreateLabel(&amp;quot;Bitte warten Sie.&amp;quot;, 6, 234, 534, 29, $SS_CENTER)&lt;br /&gt;
GUICtrlSetFont(-1, 15, 800, 0, &amp;quot;MS Sans Serif&amp;quot;)&lt;br /&gt;
GUICtrlSetCursor (-1, 15)&lt;br /&gt;
GUISetState(@SW_SHOW)&lt;br /&gt;
#EndRegion ### END Koda GUI section ###&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_HIDE, $FormLogoff)&lt;br /&gt;
&lt;br /&gt;
If FileExists($s_Homeshare &amp;amp; &amp;quot;\JumpingProfile\JPUser.dat.OLD&amp;quot;) = 1 Then&lt;br /&gt;
	$a_TimeBackupFile = FileGetTime($s_Homeshare &amp;amp; &amp;quot;\JumpingProfile\JPUser.dat.OLD&amp;quot;, 0, 0)&lt;br /&gt;
	; $a_TimeBackupFile[0] = Jahr (vierstellig)&lt;br /&gt;
	; $a_TimeBackupFile[1] = Monat (Bereich: 01 - 12)&lt;br /&gt;
    ; $a_TimeBackupFile[2] = Tag (Bereich: 01 - 31)&lt;br /&gt;
    ; $a_TimeBackupFile[3] = Stunden (Bereich: 00 - 23)&lt;br /&gt;
    ; $a_TimeBackupFile[4] = Minuten (Bereich: 00 - 59)&lt;br /&gt;
    ; $a_TimeBackupFile[5] = Sekunden (Bereich: 00 - 59)&lt;br /&gt;
	GUICtrlSetData($Label_Backup, &amp;quot;Backup-Date: &amp;quot; &amp;amp; $a_TimeBackupFile[2] &amp;amp; &amp;quot;.&amp;quot; &amp;amp; $a_TimeBackupFile[1] &amp;amp; &amp;quot;.&amp;quot; &amp;amp; $a_TimeBackupFile[0] &amp;amp; &amp;quot; - &amp;quot; &amp;amp; $a_TimeBackupFile[3] &amp;amp; &amp;quot;:&amp;quot; &amp;amp; $a_TimeBackupFile[4] &amp;amp; &amp;quot;:&amp;quot; &amp;amp; $a_TimeBackupFile[5])&lt;br /&gt;
	$b_showRestore = True&lt;br /&gt;
Else&lt;br /&gt;
	GUICtrlDelete($Label_Backup)&lt;br /&gt;
	GUICtrlDelete($Button_Restore)&lt;br /&gt;
	;GUICtrlSetResizing&lt;br /&gt;
	WinMove($FormJP_ProfileReset, &amp;quot;&amp;quot;, @DesktopWidth / 2 - 204, @DesktopHeight / 2 - 151, 408, 343)&lt;br /&gt;
	$b_showRestore = False&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	$nMsg = GUIGetMsg()&lt;br /&gt;
	Switch $nMsg&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $Button_CANCEL&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $Button_RESET&lt;br /&gt;
			If $s_Homeshare &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$h_JPProfileResetOrRestoreFile = FileOpen($s_JPProfileResetFile,2)&lt;br /&gt;
				If $h_JPProfileResetOrRestoreFile &amp;lt;&amp;gt; -1 Then&lt;br /&gt;
					GUICtrlSetState($Button_CANCEL, $GUI_DISABLE)&lt;br /&gt;
					GUICtrlSetState($Button_RESET, $GUI_DISABLE)&lt;br /&gt;
					If $b_showRestore = True Then&lt;br /&gt;
						GUICtrlSetState($Button_Restore, $GUI_DISABLE)&lt;br /&gt;
					EndIf&lt;br /&gt;
					FileWriteLine($h_JPProfileResetOrRestoreFile, &amp;quot;Profile will be delete at next Logon!&amp;quot;)&lt;br /&gt;
					FileClose($h_JPProfileResetOrRestoreFile)&lt;br /&gt;
					MsgBox(262208,&amp;quot;OK&amp;quot;,	&amp;quot;Votre profil Citrix sera réinitialisé à la prochaine ouverture de session!&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;Vous serez maintenant déconnecté de tous les serveurs Citrix ...&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										@CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;Your Citrix Profile will be reset on next Logon!&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;You will now be logged out from all Citrix Servers ...&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										@CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;Ihr Citrix Profil wird bei der nächsten Anmeldung zurückgesetzt!&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;Sie werden jetzt von allen Citrix Servern abgemeldet ...&amp;quot;,60)&lt;br /&gt;
					GUISetState(@SW_HIDE, $FormJP_ProfileReset)&lt;br /&gt;
					GUISetState(@SW_SHOW, $FormLogoff)&lt;br /&gt;
					RunWait( $s_logoffallserverSkript, @WindowsDir, @SW_HIDE )&lt;br /&gt;
					Shutdown(16)&lt;br /&gt;
					Exit&lt;br /&gt;
				Else&lt;br /&gt;
					MsgBox(262160, &amp;quot;ERROR&amp;quot;, &amp;quot;Error - can not write at Path!&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Path: &amp;quot; &amp;amp; $s_JPProfileResetFile &amp;amp; @CRLF &amp;amp; &amp;quot;Homeshare: &amp;quot; &amp;amp; $s_Homeshare)&lt;br /&gt;
				EndIf&lt;br /&gt;
			Else&lt;br /&gt;
				MsgBox(262160, &amp;quot;ERROR&amp;quot;, &amp;quot;Error - did not find Path to your Homeshare!&amp;quot;)&lt;br /&gt;
			EndIf&lt;br /&gt;
		Case $Button_Restore&lt;br /&gt;
			$h_JPProfileResetOrRestoreFile = FileOpen($s_JPProfileRestoreFile,2)&lt;br /&gt;
				If $h_JPProfileResetOrRestoreFile &amp;lt;&amp;gt; -1 Then&lt;br /&gt;
					GUICtrlSetState($Button_CANCEL, $GUI_DISABLE)&lt;br /&gt;
					GUICtrlSetState($Button_RESET, $GUI_DISABLE)&lt;br /&gt;
					GUICtrlSetState($Button_Restore, $GUI_DISABLE)&lt;br /&gt;
					FileWriteLine($h_JPProfileResetOrRestoreFile, &amp;quot;Profile will be restored at next Logon!&amp;quot;)&lt;br /&gt;
					FileClose($h_JPProfileResetOrRestoreFile)&lt;br /&gt;
					MsgBox(262208,&amp;quot;OK&amp;quot;,	&amp;quot;Votre profil Citrix sera restauré à la prochaine ouverture de session!&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;Vous serez maintenant déconnecté de tous les serveurs Citrix ...&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										@CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;Your Citrix Profile will be restored on next Logon!&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;You will now be logged out from all Citrix Servers ...&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										@CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;Ihr Citrix Profil wird bei der nächsten Anmeldung wiederhergestellt!&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
										&amp;quot;Sie werden jetzt von allen Citrix Servern abgemeldet ...&amp;quot;,60)&lt;br /&gt;
					GUISetState(@SW_HIDE, $FormJP_ProfileReset)&lt;br /&gt;
					GUISetState(@SW_SHOW, $FormLogoff)&lt;br /&gt;
					RunWait( $s_logoffallserverSkript, @WindowsDir, @SW_HIDE )&lt;br /&gt;
					Shutdown(16)&lt;br /&gt;
					Exit&lt;br /&gt;
				Else&lt;br /&gt;
					MsgBox(262160, &amp;quot;ERROR&amp;quot;, &amp;quot;Error - can not write at Path!&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Path: &amp;quot; &amp;amp; $s_JPProfileResetFile &amp;amp; @CRLF &amp;amp; &amp;quot;Homeshare: &amp;quot; &amp;amp; $s_Homeshare)&lt;br /&gt;
				EndIf&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BLinz|Bernhard Linz]] 14:27, 20. Okt. 2014 (CEST)&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Erweiterungen==&lt;br /&gt;
* [[JumpingProfiles:JPProfileReset-Backup-Erweiterung|JPProfileReset - Backup-Erweiterung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
</feed>