Updated: Apr 17, 2021
It has been quite long since I had to shift from UIPath to an alternate solution for UI automation. The organization I work for required a package for PowerShell with similar end results but without using any third-party tools. At that time, I was only aware of Python for UI control. But, as every interesting story goes, things weren't ready to go my way. ;)
I searched across the web and came around this interesting package that I've talked about in the last few posts, UIAutomation. I was initially excited but that didn't last long. There were some crazy bugs that I could eventually figure a way across but that somewhere bothered me that knowing UI tree, etc, I still didn't know how to access them at the programming level. I tried and convinced the team to run along with C# instead of PowerShell for the tool we had to develop, so we could natively use the Automation and other related namespaces. That turned out good. There began my urge to understand UI at the element level.
With all these months or rather years of experience with integrating C#, WPF, PowerShell, and Python, I figured, the best way this was to work is if there was a library that could be used with PowerShell and the one I could customize. So, I learned the way to create PowerShell modules using C# and here we are discussing, as the title says, UIAutomator. Though the module consists only of a few commands, that is all that you'll need to automate almost anything that can be done without condition checks, etc. It's up to you to extend it as need be.
Note: Only desktop-based applications consisting of Windows' controls would be accessible.