Priming a Non-persistent Windows Image using an Autologon Process with an Auto Logoff Timer

Several years ago, and inspired by an article written by George Spiers to reduce login times, where “the second logon is quicker”, together with some code from Maurice Daly, I created a methodology and scripts that is designed to Autologon a non-persistent Session Host (both VDI and RDS), and then log it off again before another script will Start the Citrix Desktop Service (BrokerAgent).

It has been working flawlessly for years. However, I was never 100% happy with it because the process was using a domain (service) account for the Autologon process. The main challenge here was trying to change the password on a regular basis to stay compliant when managing multiple images. You cannot realistically do it without an outage. And in a 24×7 environment, it becomes difficult and onerous. I also felt that using a domain account can be “heavy” during a boot storm as you need to ensure you are excluding this account from profile management and policies where possible. Sometimes that is easier said than done. There is a level of risk here, as someone can easily make a change that will cause issues. The ability to roll the password and stay compliant was my biggest concern and where I got stuck for quite some time.

Read more

How to ensure the Test-WSMan cmdlet doesn’t give you false positives?

I was recently creating some health check tests that would use both the Get-CimInstance and Invoke-Command cmdlets. These use the Windows Remote Management (WinRM) protocol. To make the process more efficient I added a function that first tests that WinRM is enabled and healthy on the remote host using the Test-WSMan cmdlet.

That was working well until I hit a couple of unhealthy machines and received a response from Test-WSMan that provided misleading information. Just by using the basic command line with no other parameters gave me a positive response.

Test-WSMan Sick Machine

Read more

The Citrix Virtual Apps and Desktops & Desktops as a Service Health Check Script on Steroids

UPDATE: Version 1.5.9 released on 3rd March 2026. See below for all the details.

Since November 2014 many of us have been using the amazing Sacha Thomet’s XenApp and XenDesktop Health Check Script. I’ve made my own modifications to it over the years, but never contributed and shared anything publicly until June 2025. My motivation is to give the community some amazing visibility of their Citrix environments that they’ve never had before. I took the last release from Sacha, which was the February 2022 update, together with some modules I’d previously written, and overhauled the whole process from top to bottom, and wrote even more modules. Sacha has kindly committed my pull requests to his GitHub repository, which officially adds me as Contributor!

CVAD & DaaS Health Check Script on Steroids

Read more

The Maptek User Support Tool to Help Manage Vulcan Support Challenges

I would like to introduce you to a PowerShell tool I built in 2023 and have been continually developing and adding features until this release. If you or your customer runs Maptek Vulcan, especially in a virtualised desktop platform from Vendors such as Citrix, Omnissa, Parallels, Dizzion, Microsoft and Amazon, you may want to consider using this tool to assist users with the support challenges for Maptek products, specifically Vulcan and BlastLogic. It primarily empowers the users with the ability to set, change and verify required Vulcan variables, ODBC connections, and mapped drives. It also facilitates setting the TEMP & TMP variables to a RAM Disk (if present), for the current process only, before starting Vulcan.

The Maptek products aside, this tool can be used as a template and modified to help enhance the delivery and experience for any application.

The following screen shot shows the user interface in two forms. Can you spot the differences? I will explain below what this means and all the functions the tool provides.

Maptek User Support Tools

Background

Maptek Vulcan is specialised 3D mining software used for geological modelling, mine design, and mine planning. It has been widely used in the mining industry since the mid 1980s by Geologists, Surveyors, Mine and Geotechnical Engineers to analyse, visualise, and optimise mineral resources. It is also used for resource evaluation, feasibility studies, and operational planning. It integrates with many other mining applications.

From an IT Support point of view, it’s a beast of an application that has several limitations due to legacy code and settings that creates challenges for users when deployed into a Virtual Desktop platform. It’s written to run on high end laptops and workstations where users are not locked down too heavily. So when you add Cyber policies and locked down devices and desktops, it can be challenging for users to configure the software as needed without assistance.

Read more

Microsoft High Performance Computing (HPC) Pack 2019 Service Resilience

A quick post to help make the services on the Microsoft High Performance Computing (HPC) 2019 Head Nodes more resilient by setting their recovery options.

Run the following PowerShell code on each of your Head Nodes which helps avoid failures for the users when starting the HPC Job Manager, or Admins when starting HPC Cluster Manager.

$HPCServices = Get-Service | where-object {$_.DisplayName  -like '*HPC *'}
ForEach ($HPCService in $HPCServices) {
  $ServiceDisplayName = $HPCService.DisplayName
  $ServiceName = $HPCService.Name
  write-verbose "Setting the `"$ServiceDisplayName`" service recovery options to:" -verbose
  write-verbose "- Restart the service 1 minute (60000 ms) after the first failure" -verbose
  write-verbose "- Restart the service 1 minute (60000 ms) after the second failure" -verbose
  write-verbose "- Restart the service 3 minute (180000 ms) after subsequent failures" -verbose
  write-verbose "- Reset the failure count every 1 day (86400 seconds)" -verbose
  Invoke-Command {cmd /c sc failure "$ServiceName" reset= 86400 actions= restart/60000/restart/60000/restart/180000} | out-null
}

HPC Pack 2019 logo

Read more

Development Planning for the Citrix Self-Service Session Reset Tool

The Citrix Self-Service Session Reset Tool is software that I write and manage in my own time on my lab equipment. It is often challenging to find the time to work on it as I have many projects on the go. And life in general often gets in the way. I get a lot of queries asking me when the next release will be available and if the feature they are looking for will be included. Rather than continually updating the main article, and responding to queries, I wanted to document where the project is at and what further work is to be completed.

SSSRT Kanban

Version 1.9 was the last public release back on 1st June 2022.

Why not ditch my APIs and use the Citrix Virtual Apps and Desktops REST APIs that are now included with on-prem Delivery Controllers from version 2209 or later?

I work in the Mining Industry where we have OT (Operational Technology) networks, also known as PCN (Process Control Network). This is a typical setup within the mining, oil and gas industries, as well as utilities such as water and electricity. Some have their own AD domain with no trusts. But they all typically have a separate Citrix Site due to risk mitigation and change management requirements, and what we refer to in the mining industry as “site survivability”, meaning that a mine site can keep running when all comms links are lost. At the time of writing this, many of these sites are still 2203 LTSR or lower. Until these platforms have been upgraded to 2402 LTSR or later, I cannot leverage the built in Citrix APIs, and will continue to leverage the PowerShell SDK that my APIs are built on. Apart from that, I also wanted to be inclusive and did not want to place others at a disadvantage that are still running older versions.

If you are running 2209 and above on-prem, or just using Citrix DaaS (Cloud), the APIs are there for you to leverage. So all you need to do is create a cool user interface (UI) using a Blazor Server Application.

HOWEVER, I have since found limitations with the CVAD APIs, especially for on-prem. The Citrix Product Manager has suggested that I should be continuing to use the PowerShell cmdlets for the foreseeable future, as the CVAD APIs are not expected to be “production” ready for some time.

I’m working on the following before the next version can be publicly released, which I’m planning for June 2025 early 2026:

  • Securing the API secret information in the CtxSites.xml file
  • JavaScript Bug
  • Refactor Code
  • Enable/Disable Maintenance Mode API
  • Citrix PowerShell SDK Bug

Read more

The Micromine Alastri Hub Launcher Tool that leverages a RAM Disk for Temporary Data

I would like to introduce you to a PowerShell tool I originally created in early 2024, which was in the research and planning stage for about 12 months previous to that whilst I was finding a suitable RAM Disk solution. If you or your customer runs Micromine Alastri Software, especially in a virtualised desktop platform from Vendors such as Citrix, Omnissa, Parallels, Dizzion, Microsoft and Amazon, you may want to consider using this tool to help increase performance and reduce potential issues caused by the amount of temporary data (reads & writes) generated and consumed by the Alastri applications.

Alastri Hub Launcher

Read more

Silently Installing and Automating the Arsenal Image Mounter (AIM) RAM Disk Feature

Updated 17th November 2025

I previously wrote about The best free for commercial use RAM Disk that works perfectly with Desktop Virtualisation. This is a follow on from that article that will focus on:

  • The installation of Arsenal Image Mounter (AIM)
  • The automation for the creation of a RAM Disk
  • The challenges I experienced with the creation of the RAM Disk
  • How to deploy it
  • The scripts themselves

Here are further articles to demonstrate the use cases:

Read more

The best free for commercial use RAM Disk that works perfectly with Desktop Virtualisation

For context, a RAM Disk provides fast I/O (read and write) performance, faster than SSDs (Solid State Drives), with wider bandwidth and much lower latencies.

There are plenty of free and paid options for RAM Disk software available. This article is not about finding the fastest RAM Disk software available, so I haven’t gone out and benchmarked a range of products. My goal was to find the best “free for commercial use” RAM Disk software that works well and meets a list of requirements as laid out below. So I won’t be adding screen shots of output from tools like CrystalDiskMark, etc.

What is the best free for commercial use RAM Disk I hear you ask? The answer is Arsenal Image Mounter (AIM), from Arsenal Recon, which was developed by the legendary Olof Lagerkvist of ImDisk Toolkit fame.

Arsenal Image Mounter (AIM)

Okay, so I gave away the secret early in this article. But now I’m going to take you on a journey of how I got there, the use cases, the challenges, and the PowerShell scripts I used to deploy and create it.

Read more