Resolved

Execute Script against Playlist

avatar

Guten Tag,

ich habe heute versucht ein Skript zu erstellen, welches ich mit einer Playlist ausführen kann.
Leider bekomme ich das Skript nicht in der Liste aufgeführt.

Anbei ein paar Screenshots, wie ich das Skript und die Playlist erstellt habe.

Skript:
Rechtsklick auf einen Ordner in meiner lokalen Datenquelle
forum image

forum image


forum image

Playlist:

forum image

Anschließend wähle ich 19 RDP Sessions aus und unter Advanced lasse ich alles auf Default.



Habe ich eine Option übersehen? :)

Ich konnte dazu leider keine Infos in der Online Hilfe Funktion oder dem Forum finden.

Mfg
Tobias

All Comments (23)

avatar

Hallo Tobias,

die Konfig passt, die Funktion das Skript gegen alle Einträge einer Playlist auszuführen scheint es aber (noch) nicht zu geben.

Das kling stark nach einen weiteren Feature Request 😉

LG,
Min

avatar

Hallo Min,

wieso gibt es dann überhaupt diesen Button und die GUI? :)
Ich habe im Forum unter dem Topic Macro/Script/Tools ein Ticket gelesen, wo auf diese Funktion verwiesen wurde.
Hier ein Link zu dem Ticket:
https://forum.devolutions.net/topics/33467/run-scripts-combined-with-playlists

Ich habe natürlich nichts gegen ein neues Feature Request aber das irritiert mich schon ein wenig. ;)

LG,
Tobias

avatar

Hallo Tobias,

nach etwas Recherche bin ich nun auch etwas klüger 😉

Die Funktion Skript ausführen für wird nur für Skript- und Makro Einträge unterstützt. Die Befehlszeile ist als Werkzeug kategorisiert, deshalb scheint dieser Eintrag nicht in der Liste auf bzw. kann dieser nicht ausgewählt werden.
Alternativ kannst du versuchen einen PowerShell Eintrag anstatt einer Befehlszeile zu erstellen.

LG,
Min

avatar

Hallo Min,

vielen Dank für deine Recherche. 😄
Das macht dann auch mehr Sinn. 😁

Dann werde ich wohl meine Skripte in Powershell umschreiben.😉

LG,
Tobias

avatar
Hallo Tobias,

nach etwas Recherche bin ich nun auch etwas klüger 😉

Die Funktion Skript ausführen für wird nur für Skript- und Makro Einträge unterstützt. Die Befehlszeile ist als Werkzeug kategorisiert, deshalb scheint dieser Eintrag nicht in der Liste auf bzw. kann dieser nicht ausgewählt werden.
Alternativ kannst du versuchen einen PowerShell Eintrag anstatt einer Befehlszeile zu erstellen.

LG,
Min



Hallo Min,

ich habe nach einiger Zeit noch eine Frage zu dem Thema...
Ist eventuell geplant in Zukunft ein Feature einzuführen, was es erlaubt ein Macro/Skript oder auch ein Tool direkt gegen eine Selection im Navigation Panel auszuführen?

Ich arbeite nicht die ganze Zeit mit den selben Sessions, daher müsste ich jedes Mal eine neue Playlist erstellen für die Selection.
So ist es auch etwas umständlich "Mal eben" ein Skript gegen mehrere Sessions laufen zu lassen.

Außerdem verstehe ich nicht ganz den Grund, warum das Command Line Tool nicht von Playlists unterstützt wird.
Kannst du mir das vielleicht erklären? :)



LG
Tobias

avatar

Hallo Tobias,

ich werde mich mal schlau machen! 😉
Welche RDM Version und Datenquelle hast du im Einsatz?

Hast du zufällig einen Anwendungsfall oder einen Beispieleintrag die du für mehrere Sitzungen aus der Navigation ausführen möchtest?

LG,
Min

avatar

Hallo Min,

Ich habe heute auf die Version 2023.1.23.0 upgegraded.
Ich nutze eine lokale Datenquelle.

Ich habe aktuell ein Command Line Skript erstellt Namens SetNTP.
Dieses führt die psexec64.exe mit Argumenten der Session auf. (Siehe Bild)
Solche Skripte müsste ich dann gegen mehrere Sessions ausführen. Also ca. 20 Rechner.
Da nimmt es aktuell natürlich recht viel Zeit in Anspruch, dies bei jeder Session einzeln anzuklicken.
In diesem Beispiel könnte ich das auch über psexec selber regeln mit den mehreren Rechnern verbinden. Ich habe das jetzt aber einfach Mal als Beispiel genommen. :)

Geht sich also generell um Befehle die auf dem Zielrechner der Session ausgeführt werden sollen unter Verwendung der jeweiligen Session Credentials und IP.
Mit der Powershell Remote und Powershell local habe ich leider garkein Erfolg gehabt bisher...
Dort habe ich Testweise mit New-Item versucht eine Datei auf dem Desktop der Session zu erstellen. Dies funktionierte leider nicht.





Inhalt der Batch Datei:





LG
Tobias

a912ae62-8bf7-4f17-b12d-a44293c93f10.png

14403b6d-0a6f-4bc4-a05c-d056a8c6aada.png

845cd1cb-d7d3-4dfb-b67c-c78740fe1049.png

avatar

Hallo Tobias,

danke für die Details!

Ist in deinen Command Line Eintrag unter Description die Option Allow batch execute aktiviert?

Falls nein, diese bitte aktivieren und anschließend die gewünschten Sitzungen in der Navigation markieren => Rechtsklick => Macros/Scripts/Tools => SetNTP auswählen

LG,
Min

avatar

Hallo Min,

danke das war die Option, die mir noch gefehlt hat... :)

Leider verstehe ich noch nicht so ganz den Unterschied zwischen Powershell local und Powershell Remote.
Damit würde ich auch gerne einen Befehl Remote auf der Session ausführen.
Ich hätte Powershell Remote so verstanden, dass durch den RDM automatisch eine PS Session mit den Session Credentials eröffnet wird und der Befehl oder das hinterlegte Skript auf dem Zielhost ausgeführt wird.

Dies ist allerdings nicht der Fall.

Das wäre dann aber auch mein letztes Anliegen... ;)



LG
Min

avatar

Hallo Tobias,

freut mich, dass du schon meine Signatur angenommen hast! 😎

Zum Thema PowerShell ist es eigentlich schon so dass

  • PowerShell (Remote) eine PowerShell Sitzung mit dem Zielhost aufbaut und den Befehl auf diesem Zielhost ausführt
  • PowerShell (Lokal) die PowerShell Sitzung auf den lokalen Rechner ausführt


LG,
Min

avatar

Hallo Min,

ah ja wie auch immer das passiert ist😅

Alles klar, dann muss ich mit denen wohl noch ein bisschen testen bis es klappt... :)


LG
Tobias

avatar

Guten Morgen Tobias,

einfach melden wenn du Unterstützung brauchst! 👍

LG,
Min

avatar

Hi Min,

leider komme ich mit der Powershell Remote nicht klar....
Nach meinem Verständnis sollte es klappen, wenn ich im Skript folgende Zeile hinterlegt habe:
New-Item -Path C:\Users\testUser\Desktop -Name test.txt -Value "Testtext"

Anschließend unter Advanced die Option "Use session credentials" aktiviere und bei der RDP Session dann
das Skript auswähle. Bei mir kommt dann immer für 1 Sekunde ein Powershell Fenster, welches sich dann direkt wieder schließt.
Leider kann ich dadurch auch nicht sehen, was in dem Fenster geschieht, zum debuggen. Ich finde auch keine Logs wo irgendwas zur Ausführung hinterlegt ist.

Ich habe es auch versucht, indem ich im Skriptblock eine pssession mit New-PSSession erstelle mit den User credentials und der IP Adresse aus den Argumenten.
Im Feld Arguments habe ich dann folgende Variablen eingefügt: "$HOST$ $USERNAME$ $PASSWORD$"
Die Option "Allow password in variable" bei der RDP Session habe ich ebenfalls aktiviert.

Könntest du mir dabei nochmal helfen? :)





VG
Tobias

PSScript.png

Arguments.png

avatar

Hallo Tobias,

kein Thema, das bekommen wir auch noch hin 😉

Was genau soll dein Script im Endausbau denn genau machen?

LG,
Min

avatar

Hi Min,

mir geht es erstmal nur darum, dass ich einen oder mehrere Befehle auf dem Zielsystem ausführen kann.
Zum Beispiel, was ich aktuell versucht habe, eine Datei auf dem Desktop des Session Users erstellen. :)

Würde gerne die Funktion von dem Powershell Remote verstehen. Gibt es da eine Möglichkeit, dass die Powershell sich nicht direkt schließt?
Es gibt ja eine Option Debug. Aber da habe ich auch nicht verstanden was die bedeutet.

LG
Tobias

avatar

Hallo Tobias,

zur Info: Ich versuche gerade sein Szenario nachzubauen und bin womöglich auf einen Bug gestoßen - ich werde das noch abklären und halte dich auf dem laufenden! 😉

Schönes Wochenende!

LG,
Min

avatar

Hallo Tobias,

kannst du bitte beigefügtes Script bei dir testen? In den Optionen der RDP Sitzung unter Verwaltungswerkzeuge => Werkzeuge müssen eventuell noch die Anmeldeinformationen angepasst werden.

LG,
Min

PowerShell (Remote) testScript.rdm

avatar

Hallo Min,

leider passiert das selbe, wie bei mir zuvor. Das Powershell Fenster öffnet sich für ca eine Sekunde ohne sichtbaren Text und wechselt dann in den RDM als Tab.
Der Tab kann aber nicht ausgewählt werden. Daher unmöglich eine eventuelle Fehlermeldung zu sehen.
Ich habe es mit Windows 11 und Windows Server 2019 getestet. Ich habe auch die Rechner bei mir als trusted Host hinzugefügt.
Außerdem habe ich unter Werkzeuge mit den Optionen "use session credentials", "Custom" und den Haken bei "Allow credentials for tools add-on" getestet.



LG,
Tobias

avatar

Hallo Tobias,

kannst du das ganze mal mit der Portablen Version testen und dort eine neue Datenquelle konfigurieren? Ich möchte gerne die aktuelle Umgebung ausschließen.

LG,
Min

avatar

Hi Min,

leider dasselbe Problem.
Ich habe eine neue Datenquelle in dem Portable Ordner erstellt und damit getestet. Ich habe auch eine komplett neue RDP Session mit Custom Credentials erstellt.
Die von die genannten Optionen unter Tools habe ich dann auch wieder angepasst.
Leider ohne Erfolg.


LG,
Tobias

avatar

Hallo Tobias,

ok, dann gibt es vielleicht ein Problem mit PowerShell selbst - kannst du bitte mal PowerShell Version 7 installieren und anschließend in RDM konfigurieren:
Datei => Optionen => Typen => Andere => PowerShell


LG,
Min

5a046ef6-437b-47f9-aa7f-08c28a074226.png

avatar

Hi Min,

jetzt hast du das Problem gefunden... :)
Das embedded Fenster ist jetzt offen geblieben und hat den Fehler gezeigt, dass ich den Host nicht als trusted host hinzugefügt hatte.
Nachdem ich den hinzugefügt habe, lief das Skript durch.
Vielen Dank für die Hilfe und Geduld ;)

LG,
Tobias

avatar

Hallo Tobias,

perfekt, das freut mich zu hören! 😉
Kein Problem, immer wieder gerne!

LG,
Min