I'm currently working on automatic installation of GUI application using library UIAutomation PS Extensions (https://uiautomation.codeplex.com/). It works pretty well in cases, when I run it against existing Windows user session. I run my PS script, it opens a window and I can click on buttons and so on ..
However, problem raises when this library is called from remote machine. I call my script (which should open a GUI window and start controlling it) via PsExec from remote machine. This causes that script is not able to open GUI window on remote machine and starts to produce various exceptions.
As workaround for this, I can make PsExec to connect to specific existing session on remote host, but unfortunatelly this is not stable as I can't guarantee session's existence.
Does enyone know whether it's possible to force PowerShell to open new session (interactive GUI) through which I would be able to call UIAutomation commands?
Thank in advance Matthew
1) Download and unzip the latest package from its official website: UI Automation PowerShell Extensions to la ocal path, for example, C:\UIAutomation 2) Import the module into the PowerShell script: ( Note: When you run this command, make sure you are not running PowerShell as an Administrator)
UIAutomation is an open source project PowerShell extension for GUI automation tests. It supports Win32, Windows Form, WPF, and so on.
To enter a remote Windows PowerShell session, use the Enter-PSSession cmdlet to create an interactive remote Windows PowerShell session on a target machine. If you do not supply credentials, the remote session impersonates your current sign-in info.
Using standard PowerShell methods (WinRM, WMI) you can't launch applications with GUI. The only solution I know about is to use PsExec from SysInternals (or similar tools). It can launch applications which present GUI to the user. Your command line will look like this:
I'm not clear on whether it's feasible to remotely open a new interactive desktop session in which to run GUI tests that require one. I'd be interested to find out if it's doable, since problems like this frequently come up when folks try to set up CI tests of Windows GUI apps.
Alternatively, I'd propose solving this by configuring the machine where your tests run to log in as a user at boot. Then you can remotely launch your tests as that user, and make use of their open session. That's worked in the past for me when I've run into similar issues.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With