This is a blog about different types of software development and windows system administration tricks, tuts and other helpful stuff.

Building UI applications with PowerShell in Windows

All started some years ago when I created some Windows Shell scripts such as vbs/batch etc. to automate computer tasks at home and at the company I worked for. After that period, I started to integrate them within some PowerShell scripts. Some of those batch files converted to executables. Short time after I thought, hmm is there a way to build a beautifully crafted UI and bring all those scripts into a single executable without the need to install it? Well, I accepted that challenge and looked around for options. I was seeking a product I can rely on for all my needs such as

• having a universal Scripting IDE for all my administrative as well as web-development tasks;
• having a Windows PowerShell integrated scripting and tool-making environment for x86/x64;
• In-house support or forum access to ask diverse tool making questions when struggling with any problems when using the software, the way I like;
• finally, not to be so expensive, to cover with one license two development machines and to be able to migrate easily the installation across devices when needed.

So, I came across Sapien Software. I went with their 45 days trial version and explored all those nice features they have developed over the years. Shortly after being amazed I went with the commercial license for Sapien PowerShell Studio 2018. Not long after, I needed to have a way to convert my Windows Batch and VBS files into executables, so I struggled, shall I just buy additionally the PrimalScript or why not just upgrade to their Sapien Software Suite S3 2018/2019? So, I did, I bought the full Suite, and it is fun playing around with the different included apps. Their S3 package is now better known as the Sapien DevOps 2019 Version. As of May 2019 and writing the blog post, the package includes the below separate applications:

PrimalScript is the leading Universal Scripting IDE for all your administrative and web-development tasks.
PowerShell Studio is the premier editor and tool-making environment for Windows PowerShell.
VersionRecall is the simplest way to manage multiple versions of files on your computer.
WMI Explorer discover WMI - get a handle on WMI classes and their properties and methods.
PrimalSQL makes database query development and testing a snap, regardless of your database type or vendor.
PrimalXML provides you with the core set of functionality that you need to get your job done.
PowerShell Module Manager is the essential tool for centrally managing all PowerShell modules installed on your machine.
PowerShell HelpWriter the first professionally designed environment for writing and editing Windows PowerShell help files.

Since 2018, I usually work using Sapien PowerShell Studio/PrimalScript/WMI Explorer/Version Recall. 

I am sharing below some screenshots about the happiness I have when using such powerful suite with tools at the fingertips. I am a happy user using the Dark Mode Template :).

PrimalScript overview, Dark UI
WMI Explorer overview, Dark UI

So, the app I tried building consist of the below functionality:


The Data is collected in csv/xls(x)/xml/txt/csv file formats. The exported data is set to be saved in the Current Directory where the App is run.

The file is set to look like: computername_x64/x86 Architecture. For example: MyPC-name__SUMMARY_WIN7_SP1_x64.txt .


Windows OS activations;
User rights;
Get events;
Scheduled Tasks;
Windows update log;
Network adapters;
Proxy Configuration settings
Deployment, servicing logs [ still under development and testing ].
Archive collected logs [ still under development and testing ].

• Changelog tab – more information about the application. Information about the help files / documentation etc.

• About the project tab - why I wanted to give it a try to create it ?

I listed below some screenshots of the application – AdminLogsToolkit, created for the x86 and x64 Platform.

Admin Logs Toolkit overview
Advanced Logs collecting
Generate System basic summary information
About the app

During the time I was trying to develop the application and gaining new precious experience I was thinking of a way to protect/license that program. So, between switching the diversity of hobbies 😊, I did some digging and application trials testing. I know that most applications can be reverse engineered, or license activation bypassed. Well, I wanted to give it a try, have an additional challenge along the way. Therefore, I was looking for the below requirements I had back in time:

A professional software protection and licensing system as a cost effective and easy to implement, yet reliable and non-invasive way to protect x86 and x64-bit Windows software applications from reverse engineering, unauthorized modifications ("cracking") and redistribution ("software piracy") while providing a secure and flexible licensing/registration system. I wanted to have web licensing functionality as well, but this does not have the functionality, yet I was looking for. In the meantime, opened a ticket and this will be improved in the future 😊.
In addition to the above I needed to have reliable support during presales, after purchase and during my adventure developing the idea. I found the below applications:

but I went using Obsidium Personal License Bundle (x86+x64) as my choice of preference.

When finalizing the created protected application, I also needed a code signing certificate. While checking for free options I looked also for such commercial ones as for a freelancer (in means of not being a company) to get one. Well, for my type of testing I decided to build my own Certificate Authority based on Windows Server 2016 and issue a self-signed one:

Self-signed code certificate, testing only

Currently it is used for testing only. If I decide to release it publicly available, then maybe the best choice is to use the below code signing vendors:

While looking for ways of protecting what I developed, I also installed several reverse engineering tools on the Windows box I currently run for tests on, as well as educated myself how people do such bypassing and to understand, widen my curiosity:

• IDA Pro 6.5
• .NET reflector Desktop 10
• de4dot
• PE Explorer
• SnowMan plg for IDA Pro
• PEBrowse64 Pro
• Resource Hacker
• Explorer Suite IV

All that software activation bypassing/code analysis is fun and very educational. For me as a hobby enthusiast it was actually very nice to see how it is done by professionals.

After completing version 1.0 of AdminLogsToolkit I decided to proceed with the software protection application. Below are the listed reasons, some quoted from the website:

- Licensing SDK and a variety of programming language examples how to integrate the solution (C#, C++ Builder 6, C++ Builder 2009, C++ Wrapper, Delphi, ExeOutput for PHP, PureBasic, RealBasic, Visual Basic 6, Visual C++);
- A great software product should be always covered by professional, quick support responses during evaluation and afterwards too.
- Time trials
- Integrated licensing systems using strong public key cryptography
- Dongle support for SenseLock
- Counter-measures against disassembling, debugging, dumping and patching
- File integrity checks
- Hardware locking
- Full Unicode compatibility
- Network Licensing, cool feature if running within an RDS or Citrix environment farm
- Watermarks
- Password protection
- Working with WPF apps - Please note that after analyzing the created portable executable built by Sapien PowerShell Studio, it is a Windows Presentation Foundation App. Well, it might differ from the settings used, but this is by now what I noticed.

I would be happy for receiving any feedback based on your experience. NOT many of the software protection suites I tested, could encrypt WPF or when encrypted run afterwards correctly without crashing :D or causing BSOD on the Windows box.

In an additional blog post there will be more information about Obsidium Software Protection System. I have purchased and use the Personal Full license for Windows x64/x86 for protecting apps.

When you like this blog post, I will be pleased when you share it. Thank you for the support and feedback.
Securing PowerShell app with Obsidium

2008- Powered by: