ukulele-7
Goto Top

Windows 2012 R2: Logonscript verändert Datei bei Kopiervorgang

Ich habe ein sehr sehr merkwürdiges Problem.

Windows 2012 R2 DC, RDS-Farm mit Server1 und Server2, identisch eingerichtet.

Wir setzen ELO ein, dort gibt es eine Funktion namens "Automatischer Systemeinstieg". Diese erzeugt beim setzen einen Hash mit Rechnername und Benutzerpasswort und legt diese Information unter %USERPROFILE%\AppData\Roaming\ELO Digital\ELOenterprise\ELOPSK.LOG ab. Öffnet der Benutzer die Anwendung und eine solche Datei ist vorhanden wird er automatisch angemeldet. Im Rahmen des Lastenausgleichs wechseln die Benutzer öfter den RD-Session Host. Immer wenn das passiert ist die ELOPSK.LOG natürlich nutzlos, da der gehashte Rechnername nicht mehr mit dem tatsächlichen Rechnernamen übereinstimmt. Normalerweise würde ich das gar nicht so genau ausführen, ich bin aber absolut nicht sicher was hier vor sich geht.

Ich möchte das Problem wie folgt umgehen: Eine GPO kopiert beim Abmelden die Datei ELOPSK.LOG im selben Pfad als %COMPUTERNAME%_ELOPSK.LOG. Beim Anmelden wird die ELOPSK.LOG durch die %COMPUTERNAME%_ELOPSK.LOG ersetzt. Grundsätzlich scheint das erstmal so zu funktionieren...

Wenn ich mir jetzt die drei Dateien genauer angucke passiert folgendes:
1) Anmeldung in ELO auf Server1, ELOPSK.LOG wird erstellt. Inhalt: 166156[...]
2) Abmeldung vom Server1, ELOPSK.LOG wird nach Server1_ELOPSK.LOG kopiert.
3) Anmeldung auf Server2, Server2_ELOPSK.LOG existiert nicht.
4) Anmeldung in ELO auf Server2, ELOPSK.LOG wird von ELO überschrieben. Inhalt: 064010[...]
5) Abmeldung vom Server2, ELOPSK.LOG wird nach Server2_ELOPSK.LOG kopiert.
6) Anmeldung auf Server1, Server1_ELOPSK.LOG existiert und ELOPSK.LOG wird überschrieben. Inhalt: 166156[...]
7) Abmeldung vom Server1
8) Anmeldung auf Server2, Server2_ELOPSK.LOG existiert und ELOPSK.LOG wird überschrieben. Inhalt: 066215[...]

Ich fasse das mal noch zusammen:
Melde ich mich an Server2 an und im Anschluss an Server1 funktioniert alles. Melde ich mich an Server1 an und im Anschluss an Server2 wird die Datei zwar überschrieben, ich habe aber plötzlich einen neuen, mir völlig unbekannten Inhalt.

Führe ich die selben Scripte übrigens manuell aus und nicht im Rahmen der GPO wird immer der richtige Inhalt erzeugt. Die Inhalte sind auch gleich lang, werden also nicht angehängt.

Hier noch die Scripte:
logoff.bat
IF NOT EXIST %USERPROFILE%\AppData\Roaming\"ELO Digital"\ELOenterprise\%COMPUTERNAME%_ELOPSK.LOG (  
	copy %USERPROFILE%\AppData\Roaming\"ELO Digital"\ELOenterprise\ELOPSK.LOG %USERPROFILE%\AppData\Roaming\"ELO Digital"\ELOenterprise\%COMPUTERNAME%_ELOPSK.LOG > NUL: 2>&1  
	)

logon.bat
IF EXIST %USERPROFILE%\AppData\Roaming\"ELO Digital"\ELOenterprise\%COMPUTERNAME%_ELOPSK.LOG (  
	copy /y %USERPROFILE%\AppData\Roaming\"ELO Digital"\ELOenterprise\%COMPUTERNAME%_ELOPSK.LOG %USERPROFILE%\AppData\Roaming\"ELO Digital"\ELOenterprise\ELOPSK.LOG > NUL: 2>&1  
	)

Ich bin ratlos und kann mir vor allem die Herkunft des neuen Dateiinhalts nicht erklären. Habt ihr eine Idee?

Content-Key: 281036

Url: https://administrator.de/contentid/281036

Printed on: April 23, 2024 at 12:04 o'clock

Member: Dirmhirn
Dirmhirn Aug 24, 2015 at 14:09:38 (UTC)
Goto Top
Hi,

mit %appdata% kannst du deine Pfade noch etwas kürzen und und ich würde den gesamten Pfad in " " setzen - Variablen werden auch innerhalb ersetzt.
Hier im Forum ist Code in Code Tags angenehmer zu lesen. < code > IF NOT ... </ code >

Hast du schon einmal probiert die Dateien einfach in einen anderen PFad kopieren zu lassen? So wie sich das anhört schreibt ELO ja einen Hash in die Datei. So kannst du vergleichen was geändert wird.

sg Dirm
Member: ukulele-7
ukulele-7 Aug 24, 2015 at 14:28:27 (UTC)
Goto Top
Zitat von @Dirmhirn:
mit %appdata% kannst du deine Pfade noch etwas kürzen und und ich würde den gesamten Pfad in " " setzen -
Variablen werden auch innerhalb ersetzt.
Hatte probleme mit den Variablen innerhalb von " ", werde ich beides nochmal testen.
Zitat von @Dirmhirn:
Hier im Forum ist Code in Code Tags angenehmer zu lesen. < code > IF NOT ... </ code >
Done.
Zitat von @Dirmhirn:
Hast du schon einmal probiert die Dateien einfach in einen anderen PFad kopieren zu lassen? So wie sich das anhört schreibt
ELO ja einen Hash in die Datei. So kannst du vergleichen was geändert wird.
Vorweg, anderer Pfad probier ich noch aus. ELO hat aber, wenn ich das richtig verstehe, nichts damit zu tun. Ich gucke erstmal nur was passiert bei der Anmeldung durch die GPO oder durch manuelles Ausführen der bat und was sehe ich in Notepad als Ergebnis.
Member: Pjordorf
Pjordorf Aug 24, 2015 at 14:38:04 (UTC)
Goto Top
Hallo,

Zitat von @ukulele-7:
ELO hat aber, wenn ich das richtig verstehe, nichts damit zu tun.
Hast du uns nicht von den Gegenteil berichtet in deiner eröffnungsfrage? Jetzt behauptest du ELO hat nichts damit zu tun? Was denn nun? Wer erzeugt denn den Hasch? ELO oder wer bzw. was?

Mal ELO angefragt was die bei dein Szenario mit Lastverteilung der RDS empfehlen? Alles andere ist doch nur Kukident Klebepaste....

Gruß,
Peter
Member: ukulele-7
ukulele-7 Aug 24, 2015 at 15:11:32 (UTC)
Goto Top
Zitat von @Pjordorf:
Hast du uns nicht von den Gegenteil berichtet in deiner eröffnungsfrage? Jetzt behauptest du ELO hat nichts damit zu tun? Was
denn nun? Wer erzeugt denn den Hasch? ELO oder wer bzw. was?
Nein, habe ich nicht. Unter Punkt 1 und Punkt 4 werden bei der Anemeldung in ELO zwei Datein mit enthaltenem Hash erzeugt. Diese Dateien sind völlig i.O. und funktionieren. Erst unter Punkt 8 wird bei einer Windows-Anmeldung mit angewandtem GPO-Anmeldescript eine Datei erzeugt deren Inhalt ich mir nicht erklären kann. ELO ist zu diesem Zeitpunkt noch gar nicht gestartet.

Zitat von @Pjordorf:
Mal ELO angefragt was die bei dein Szenario mit Lastverteilung der RDS empfehlen? Alles andere ist doch nur Kukident
Klebepaste....
Es handelt sich tatsächlich um eine von drei mir bekannten Möglichkeiten den "Automatischen Systemeinstieg", also Single Sign On in einer RDS Umgebung mit Lastenausgleich umzusetzen. Wenn ich dieses komische Verhalten nicht hätte würde ich es als Best Practice für meine Umgebung bezeichnen.

Natürlich kann ich meinen ELO Systempartner oder Microsoft beauftragen aber aus irgendeinem Grund arbeitet man ja als Admin auch noch selbst.
Member: Dirmhirn
Dirmhirn Aug 24, 2015 updated at 15:39:09 (UTC)
Goto Top
Hi,

ich habe mir die gleichen Fragen wie Pjordorf gestellt face-wink

bin auch der Meinung, dass die Dateiänderung nicht durch das Kopieren passiert.

deshalb, die Idee einmal wo anders hinzukopieren. ev. greift ja doch ein ELO Dienst schon relativ früh darauf zu. Das würde auch erklären wieso es mit dem manuellen kopieren keine Probleme gibt. (das passiert ja lange nach der Windows Anmeldung.

vll kannst du dein Beispiel etwas aufteilen - zb in den funktionierenden und den nicht funktionierenden Ablauf.
Welcher Inhalt ist richtig? sind die zahlen der Hashwert? ist das der gesamte Dateiinhalt?
klappt es auch wenn du komplette ohne Log-Dateien startest? (ev. kommt das Problem daher, dass einmal die schon vorhanden war...)

ev. lässt auch ELO ein Skript laufen und das ist bei dem einen Server einen tick schneller?

sg Dirm
Member: ukulele-7
ukulele-7 Aug 25, 2015 updated at 06:54:07 (UTC)
Goto Top
Okay hier erstmal nochmal der Ablauf etwas strukturiert:

funktioniert: Erstmalige Erstellung der Schlüssel-Dateien
0) Windows-Anmeldung auf Server1
1) Programmstart ELO auf Server1, Benutzer gibt PW ein, ELOPSK.LOG wird erstellt. Inhalt der Datei: 166156[...] = Gültiger PW-Hash für Server1
2) Windows-Abmeldung vom Server1, ELOPSK.LOG wird nach Server1_ELOPSK.LOG kopiert.
3) Windows-Anmeldung auf Server2
4) Programmstart ELO auf Server2, Benutzer gibt PW ein, ELOPSK.LOG wird von ELO überschrieben. Inhalt der Datei: 064010[...] = Gültiger PW-Hash für Server2
5) Windows-Abmeldung vom Server2, ELOPSK.LOG wird nach Server2_ELOPSK.LOG kopiert.

Ab diesem Zeitpunkt sind beide Schlüsseldateien erstellt und funktioniern. Meldet sich der Benutzer, der zuletzt auf Server2 angemeldet war wieder auf Server2 an, klappt alles:
5a) erneute Windows-Anmeldung auf Server2_ELOPSK.LOG existiert und ELOPSK.LOG wird überschrieben. Inhalt der Datei: 064010[...] = Gültiger PW-Hash für Server2
5b) Windows-Abmeldung vom Server2, ELOPSK.LOG wird nach Server2_ELOPSK.LOG kopiert.

Meldet sich der Benutzer, der zuletzt auf Server2 angemeldet war auf Server1 an, klappt es auch:
6) Windows-Anmeldung auf Server1, Server1_ELOPSK.LOG existiert und ELOPSK.LOG wird überschrieben. Inhalt der Datei: 166156[...] = Gültiger PW-Hash für Server1
7) Windows-Abmeldung vom Server1

Meldet sich der Benutzer, der zuletzt auf Server1 angemeldet war auf Server2 an, schlägt es fehl:
8) Windows-Anmeldung auf Server2, Server2_ELOPSK.LOG existiert und ELOPSK.LOG wird überschrieben. Inhalt der Datei: 066215[...] = Ungültiger PW-Hash für beide Server

Die Dateien habe ich vor meinen Tests komplett gelöscht, der Vorgang ließ sich aber zweimal replizieren. Der hier angegebene Inhalt sind die ersten Ziffern des Hashwerts, der komplette ist natürlich länger.

ELO hat keinen Dienst oder Job auf dem RD-Session Host laufen, also solange das Programm nicht vom User gestartet wird wüsste ich nicht, wie es auf die Datei Einfluss nehmen soll.

Ich werde mir Heute Nachmittag mal ein kleines Logging zusammen basteln das die Dateien direkt nach dem Kopieren vergleicht.
Member: ukulele-7
ukulele-7 Aug 26, 2015 at 08:23:16 (UTC)
Goto Top
Ich habe jetzt komplett neue Scripte erstellt die alles was sie tun auch loggen und kann zumindest die oben beschriebene Abfolge nicht mehr reproduzieren. Bei den Tests musste ich aber umstellen: Die logon.bat wird jetzt nicht mehr per GPO verteilt sondern über das allgemeine Anmeldescript aus der AD aufgerufen. Aus mir nicht verständlichen Gründen wurde die GPO mit der logon.bat nicht zuverlässig ausgeführt.