der-phil
Goto Top

Skript ausführen bei RDP-Reconnect - Windows 2022

Hallo!

Ich versuche einzurichten, dass ein Skript ausgeführt wird, wenn ein Terminalserveruser sich "wiederverbindet".
Dazu habe ich einen Aufgabenplanerjob angelegt, der den entsprechenden Event abfängt (Event 25 in Microsoft-Windows-TerminalServices-LocalSessionManager/Operational)


  <Triggers>
    <EventTrigger>
      <Enabled>true</Enabled>
      <Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="Microsoft-Windows-TerminalServices-LocalSessionManager/Operational"&gt;&lt;Select Path="Microsoft-Windows-TerminalServices-LocalSessionManager/Operational"&gt;*[System[Provider[@Name='Microsoft-Windows-TerminalServices-LocalSessionManager'] and EventID=25]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>  
	<ValueQueries>
        <Value name='TargetUserName'>Event/UserData/EventXML[@Name="User"]</Value>  
	</ValueQueries>
    </EventTrigger>
    <LogonTrigger>
      <Enabled>false</Enabled>
    </LogonTrigger>
  </Triggers>

Das versuche ich dann in einem Batch-Skript zu nutzen, das ich mit dem Parameter $(Targetusername) starte.

Leider funktioniert es nicht, wie es soll...


Ich habe zwei Probleme:
- Die Variable $(TargetUserName) bleibt leer.
- Die Variable %username% enthält einfach den ersten User, der am Tag sich anmeldet und nicht die des Reconnects.


Habt ihr eine Idee, wie ich das lösen kann, dass im Userkontext des Users, der den Reconnect ausführt, ein Skript läuft?

Danke und Grüße
Phil

Content-ID: 6285413234

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

Ausgedruckt am: 24.11.2024 um 05:11 Uhr

NordicMike
NordicMike 09.03.2023 um 09:01:04 Uhr
Goto Top
Der Aufgabenplanerjob läuft als Systemuser und setzt keine benutzerspezifischen Variablen. Wenn du den User benötigst, müsstest du ihn aus dem Text der Ereignisse extrahieren.
Der-Phil
Der-Phil 09.03.2023 um 09:11:18 Uhr
Goto Top
Hallo!

Genau das versuche ich ja (siehe erster Post):

	<ValueQueries>
        <Value name='TargetUserName'>Event/UserData/EventXML[@Name="User"]</Value>  
	</ValueQueries>
NordicMike
NordicMike 09.03.2023 um 09:23:30 Uhr
Goto Top
Wo wird $(Targetusername) gefüllt? Die XML ist ja nur der Trigger und füllt die Variable nicht.
Der-Phil
Der-Phil 09.03.2023 um 09:31:16 Uhr
Goto Top
Ich habe die Syntax so gelesen, dass ich den Wert "User" aus dem Event extrahiere und damit die Variable "TargetUserName" gefüllt wird.
Ist das nicht so?
6247018886
Lösung 6247018886 09.03.2023 aktualisiert um 09:37:26 Uhr
Goto Top
Habt ihr eine Idee, wie ich das lösen kann, dass im Userkontext des Users, der den Reconnect ausführt, ein Skript läuft?

screenshot

Unter Sicherheitsoptionen für die Ausführung des Tasks dann die "Gruppe" angeben indem der User ist, und im Skript dann $env:Username für den Benutzernamen nutzen fertig.

Cheers briggs
DerWoWusste
Lösung DerWoWusste 09.03.2023 um 09:34:05 Uhr
Goto Top
Du machst Dir das Leben schwerer als nötig.
Du kannst als Trigger des Tasks schon einstellen, dass er bei Wiederverbindung zur Nutzersitzung eines jeden Nutzers von remote laufen soll. Im Skript dann mit der Variable $env:username arbeiten und fertig.
capture
Der-Phil
Der-Phil 09.03.2023 um 09:45:17 Uhr
Goto Top
Zitat von @DerWoWusste:

Du machst Dir das Leben schwerer als nötig.
Du kannst als Trigger des Tasks schon einstellen, dass er bei Wiederverbindung zur Nutzersitzung eines jeden Nutzers von remote laufen soll. Im Skript dann mit der Variable $env:username arbeiten und fertig.
capture

Hallo!

Super! So funktioniert es. Vielen Dank!!!
DerWoWusste
DerWoWusste 09.03.2023 um 10:17:07 Uhr
Goto Top
Da kam der @6247018886 zeitgleich mit um die Ecke, wie du vielleicht übersehen hast face-smile