Sun, 01/22/2023 - 14:25 By David Uhlmann Contributor Lloyd Sebag
Scale Power Automate Desktop (PAD) using multiple Machines

Scale Power Automate Desktop (PAD) using multiple Machines

Whether you should use Power Automate Desktop or not has been described by my colleague in the community Reza Dorrani in his excellent video about this topic (https://www.youtube.com/watch?v=z19CAWq1tK8).
However, since the practical application of this topic is relatively rare we cannot cover all uses cases. So we will show how to scale a small solution to multiple machines. One thing in advance: The solution shown here should only be used as a last "resort" if you can't or don't want to replace the corresponding solution with a newer application that has an API (e.g. due to budget restrictions).

Power Automate Desktop (PAD), at least in the context of Power Automate cloud flows, is a bridging technology for applications without API. It does this very well, without question. However, it should by no means be seen as a long-term solution. A clearly better solution is to scrap the old software and replace it with a modern solution, for example based on the Power Platform. But anyways, lets go now. Keep in mind the following scenario is very much simplified to keep this article within reading span of most people.

In the following scenario we have a VM with Power Automate Desktop and a corresponding flow. Next to it we have a second VM on which nothing else is currently happening:

Scale Power Automate Desktop (PAD) using multiple Machines

In our use case, to keep the example simple, we have an Excel file that stores contact information. Two flows exist for this purpose: 1x a Power Automate Desktop flow that fetches the data from the Excel file and 1x a cloudflow that checks if there is a duplicate when creating a contact. So far so good:

Scale Power Automate Desktop (PAD) using multiple Machines

When the users enters a name which is in the Excelfile s/he gets flag telling her/him that this user might be a duplicate. However, this solution is not so good for two main reasons:

  • If the mentioned VM has unplanned downtime, the described mechanism is not available and the cloudflow would time out.
  • This approach also has disadvantages with a high workload, i.e. many users creating contacts. There may be long waiting times.

To prevent such problems, Microsoft offers the possibility to combine several VMs in a machine group. How this works is shown in the following steps. What we need to do is:

  1. Start a new VM (this we have already done)
  2. Install PAD, launch the portal and add the new VM to the machine group
  3. Update cloud flow connection if needed

To go one, first thing is create a new machine group:

Scale Power Automate Desktop (PAD) using multiple Machines

Once you have created a machine group, or you already had one, you can go to step 2 (installing PAD and launching the portal). How to get PAD is described by an in detail MS Learn article: https://learn.microsoft.com/en-us/power-automate/desktop-flows/install . After installation is done you can log in with your account to the Power Automate Desktop Portal on the second VM. Here you should see something like this:

Scale Power Automate Desktop (PAD) using multiple Machines

At this point the password of the Machine Group has to be entered, i.e. not the password of the admin account of the Power Platform or the local admin. The password of the Machine Group can be set as often as you like. So last we need to change the connection of the Cloud Flow to the connection of the Machine Group. This is done so that the Cloud Flow can also use the full power of the, now two, machines. For starters I would advise you to go to make.powerautomate.com which is the cloud portal for all power automate related activities. There you have more options than in the classical power platform portal:

Scale Power Automate Desktop (PAD) using multiple Machines

So now you need to open your cloud flow and update the connection to the machine group instead of the single machine. You click on the three dots of the action and select "New connection reference", then you should see something like this:

Scale Power Automate Desktop (PAD) using multiple Machines

It is recommended to login at every machine inside your machine group with the same user. Most solutions that are displayed in the internet recommend this. This makes it easier giving the connection one username and one password. For simplicity I just use my personal user, but in practice you would create an AAD Admin user that has admin rights on all the machines.

Once you are done, you should see something like this:

Scale Power Automate Desktop (PAD) using multiple Machines

Once all this is done you should make sure to log in to all the machines you want to us, or if you run your flows in unattended mode you have to log out. Now its time to test the machine group. To do that I will create multiple contacts shortly after another, knowing that the flow will take a while to start PAD, read the excel file, give results back and loop over it to check the results:

flow runs after machine group was installed

Now there is only one thing left to do. We want to check if the flows are really executed on different VMs. To check this we first need the "hostnames" of the two machines. This can be displayed on every Windows with the command "hostname". In my case the first hostname ends with: (...) VMPA and the second one ends on (...) U0Q4
Now we have to check where the flow run was executed. For this we open a flow run and click on the details of the connector:

how to get to flow runs details of group

After this you should see a screen like the following:

Scale Power Automate Desktop (PAD) using multiple Machines

So lets check out another run now:

Scale Power Automate Desktop (PAD) using multiple Machines

If you made it that far & could reproduce: congratulations! Now you are ready to scale as many VMs as you want using Power Automate Desktop using machine groups. This piece was only a glimpse of things you can/should do. Stuff like automatic checks if your machines are running, and respective actions if not, would have been too much for such a piece. If you are interested in such content comment below and we might publish it in the future (using Power Automate of course :-)

Scale Power Automate Desktop (PAD) using multiple Machines

Add new comment

Image CAPTCHA
Enter the characters shown in the image.