PowerShell & UiPath
Was ist PowerShell?
xxx
Anwendungsbeispiele für UiPath & PowerShell
xxx
Voraussetzungen zur Nutzung:
- Microsoft Windows 7+ mit funktionierender ISE
- Möglichkeit, die Ausführungsrichtlinie (set-executionpolicy) unrestricted oder bypass zu setzen. Dazu sind administrative Rechte erforderlich.
Die invoke PowerShell Node und ihre Optionen
Die PowerShell Node liegt in Aktivitäten > Installiert > System > PowerShell > Invoce Power Shell (UiPath.Core.Activities.InvokePowerShell).
"Befehl" oder in den Optionen Eingabe > Befehlstext
Der auszuführende PowerShell-Befehl. Das, was in den Code-Zeilen in PowerShell steht und ausgeführt werden soll.
Allgemein
Anzeigename
Name der Node, dieser kann verändert und wie ein Kommentar genutzt werden
Continue On Error
Gibt an, ob der UiPath Bot im Fehlerfall weiterläuft oder abbricht. True lässt den Bot im Fehlerfall weiterlaufen.
Ausgabe
Ausgabe
Beinhaltet die Variable der Inhalte der Rückgabe des Scripts.
Eingabe
Befehlstext
Input
Erwartet bereits PowerShell Objekte. Der Input kann genutzt werden, wenn bereits vorher innerhalb von UiPath mit PowerShell gearbeitet wurde – so können PS-Objekte, die zurückmeldet werden, von einer Invoke über eine Variable in das nächste Invoke übergeben werden.
Parameter
(1) Die Parameter sind jene Argumente und deren Inhalte, welche den Befehlen in das Script übergeben werden. Dabei wird der Parameter-Name zum Parameter und der Parameter-Value zu seinem Inhalt. Folgendes Bild erklärt es anschaulicher :- )

(2) Die Parameter können auch Variablen sein, welche vom UiPath nach PowerShell übergeben werden

Weiteres zur Übergabe von Variablen von UiPath in das PS-Script weiter unten.
Misc
Ausführungsmodus
Die auszuführende Version von PowerShell.
Es stehen aktuell: 7.x sowie 5.x zur Verfügung. Bei Nutzung von 5.x steht eine 32-Bit-Version zur Verfügung. Wir nutzen ausschließlich die neueste Version.
IsScript
Wenn True: Bei dem Inhalt von "Befehlstext" handelt es sich im kompletten Text um ein Script, dieses kann über mehrere Zeilen gehen und komplexe Strukturen nutzen.
Wenn False: Bei dem Inhalt von "Befehlstext" handelt es sich um einen direkten einzelnen Befehl.
Beispiel:
"Write-Host 'Hello World!'" -> Es handelt sich um ein Script, IsScript True.
"Get-Process" -> Es handelt sich um einen direkten Befehl, IsScript False
PowerShellVariablen
Private
TypeArgument


Variablen aus UiPath in PowerShell übergeben und zurückerhalten
Variablen von UiPath in PowerShell
xxx

Variablen von PowerShell nach UiPath
xxxx

PowerShell Einzeiler in UiPath
xxx
Komplexe PowerShell-Scripte in UiPath
xxx
Bekannte Probleme und deren 'Lösung'
"Lösung" steht in Anführungszeichen. Teilweise handelt es sich um Workarounds und keine „saubere Lösung“.
Es werden -Attributionen von PowerShell Befehlen nicht erkannt
Zum Beispiel "Test-Connection -IPAddress" erscheint in UiPath die Fehlermeldung, dass -IpAddress unbekannt ist. Dieses kann an der Standard-Ausführung von PowerShell in der Version 7 liegen. Viele Befehle sind in PS 7+ weggefallen oder wurden durch andere ersetzt. Wenn die Scripte in deiner ISE funktionieren, teste mit
$PSVersionTable.PSVersion
die lokale Version deiner PowerShell, wird dort "Major: 5" angezeigt, laufen deine Scripte auch in der PS v.5 - stelle in UiPath die PS Version auf 5 anstelle von 7 und teste das Script.
Log Message: Object reference not set to an instance of an object.
Der Rückgabewert der PowerShell ist (null), passiert oft, wenn mir write-host zurückgeschrieben wird. Ersetze dieses durch ein return.
Weiterführende Quellen
- https://docs.uipath.com/de/activities/other/latest/workflow/invoke-power-shell
