How to Integrate PowerShell with UiPath- Step by Step guide

How to Integrate PowerShell with UiPath

This topic is a step by step guide for integrating Powershell with Uipath. There is an ‘Invoke Powershell Activity’ available in Uipath which can be used to run the powershell scripts.
For our example purpose, let us consider a simple powershell script which gives us the status of windows services on the machine. This script will have two input parameters:
• ServiceState (String) – To get the status of service. For e.g. ‘Running’ , ‘Stopped’ etc
• OutputFilePath – The path of file where the output of script will be saved.

Follow the steps below to run the powershell script via Uipath.

  1. Save the Powershell script file in the text format. For e.g. If you have a powershell file with name ‘GetService.ps1’. open the file with notepad and save it as ‘GetService.txt’.

  2. Identify the parameters used in the Powershell script. For e.g. ServiceState and OutputFilePath as shown in example below.
    image

  3. In Uipath, use the ‘Read Text File’ activity in your flowchart. Provide the ‘File name’ as the full file path of the Powershell file ‘GetService.txt’ which is saved in text format earlier. Save the output ‘content’ of the Read text file activity into a variable, for. E.g. ‘PSScript’ as shown below.
    image

  4. Add ‘Invoke Power Shell’ activity into your flowchart after the ‘Read Text File’. In the command field enter the variable name ‘PSScript’ i.e. the content of text file read earlier.

image

  1. In the properties of ‘Invoke Power Shell’ , check the option of ‘IsScript’.
    image

  2. Click on Parameters and enter the parameters for scripts identified earlier. (Parameters value can be passed through variables. In our example, we have passed the values directly)

image

  1. Save the Uipath workflow and Run the flowchart.

  2. After the flowchart runs successfully, navigate to the Output folder path and check if the output file is generated as shown below:

image

image

Example uploaded for reference:

PowershellExample.zip (13.2 KB)

7 Likes

Hi Huston,

Thanks for the walk-through. What if we wanted to loop through the results with in uipath? Can we use the output parameter to loop the results or ?

Hi @MarkusDS,

Did you mean to say, how to save the output of powershell and loop through, instead of writing to notepad?
Could you please elaborate on this?

Hi Huston,

I mean lets stay this is part of a flow, and we need to do something on the stopped processes. So we would do a for each and then execute something for each stopped process… Instead of reading the text and splitting it, could we work directly with the output of the invoke ps.

I mean the output field of the invoke ps
image

Hi @MarkusDS

Yes, we can do this. it’s explained here .

Please find the attached file for reference.

PowershellExample.zip (1.8 KB)

image hi, do you know when to use ‘Input’ property? Could you please send me a example to elaborate? That will be wonderful!!

Hi @pitaty,

Even I haven’t used it. What I understand is, it is used for piping concept explained here .
It can be used when we want to pipe multiple invoke powershell activities.
Trying to create an example but no luck so far. I am myself a novice with powershell.
will keep you posted.

@Pablito Wonder you can provide some directions? There is limited explanation on the activity.

how to run commands on Microsoft Exchange Online Powershell Module? It doesn’t work if we write command directly on Invoke Powershell activity. Can you help me to run commands on Microsoft Exchange Online Powershell Module

Thanks in Advance

Hi, What error did you receive?

get-mailbox : The term ‘get-mailbox’ is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

The command should run on Microsoft Exhange online Powershell module, but the bot uses normal powershell.