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-Key: 6285413234

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

Printed on: April 18, 2024 at 14:04 o'clock

Member: NordicMike
NordicMike Mar 09, 2023 at 08:01:04 (UTC)
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.
Member: Der-Phil
Der-Phil Mar 09, 2023 at 08:11:18 (UTC)
Goto Top
Hallo!

Genau das versuche ich ja (siehe erster Post):

	<ValueQueries>
        <Value name='TargetUserName'>Event/UserData/EventXML[@Name="User"]</Value>  
	</ValueQueries>
Member: NordicMike
NordicMike Mar 09, 2023 at 08:23:30 (UTC)
Goto Top
Wo wird $(Targetusername) gefüllt? Die XML ist ja nur der Trigger und füllt die Variable nicht.
Member: Der-Phil
Der-Phil Mar 09, 2023 at 08:31:16 (UTC)
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?
Mitglied: 6247018886
Solution 6247018886 Mar 09, 2023 updated at 08:37:26 (UTC)
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
Member: DerWoWusste
Solution DerWoWusste Mar 09, 2023 at 08:34:05 (UTC)
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
Member: Der-Phil
Der-Phil Mar 09, 2023 at 08:45:17 (UTC)
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!!!
Member: DerWoWusste
DerWoWusste Mar 09, 2023 at 09:17:07 (UTC)
Goto Top
Da kam der @6247018886 zeitgleich mit um die Ecke, wie du vielleicht übersehen hast face-smile