New GUI with a lot of problems
I found that the unpinned navigation bar is visible if Dashboard is the active tab.
Additionally, I found pinning tabs doesn't move them to the far left and dragging and dropping tabs is not functional.
Opening Multiple Tabs Doesn't Connect Until Clicked
Prior to the latest version, I could open multiple RDP connections and let the machines log in. With the latest version, I have to click each tab for it to proceed. Is there a setting that I need to adjust to go back to the old behavior?
Using host headers to select app
My understanding is that this is not available, but I'd love to be corrected or this be added. My solution was to create an app that redirects based on headers.
New-UDApp -Title 'Redirecting...' -Content {
switch -Wildcard ($Headers.windowlocation) {
'*host1*' { Invoke-UDRedirect -Url 'https://host1.domain.com/home' }
'*host2*' { Invoke-UDRedirect -Url 'https://host2.domain.com/app2/home' }
'*host3*' { Invoke-UDRedirect -Url 'https://host3.domain.com/app3/home' }
}
}PowerShellHost - Log files
I'm seeing the same behavior, most are 0 bytes (empty) and some have some logging at 2 kb.
Published Folders Not Working in 2026.2.0
@Adam Driscoll I also have the issue & managed to partially fix it by changing to an absolute path (https://myserver.mydomain.com/assets/ as opposed to '/assets/', however while that seemed to work for an image, I have a custom font in there that won't work at all since the upgrade.
This is working fine on my dev server that's still on version 2026.1.6
Hope this helps!
@neilwalker
I tried that and it didn't work for me.
Published Folders Not Working in 2026.2.0
@Adam Driscoll
Here are the contents of publishedFolders.ps1
New-PSUPublishedFolder -RequestPath "/images/" -Path "C:\DashboardFiles\Images" -Name "Images"
New-PSUPublishedFolder -RequestPath "/migration-dashboard/" -Path "C:\DashboardFiles\MigrationDashboard" -DefaultDocument @('index.html') -Name "MigrationDashboard"PowerShell Universal - 2026.2.0
Looks good mostly, and this is a huge update so thank you. However I noticed after upgrading, the logo on my app (New-UDApp -Logo "/pub/images/pathtoimage.png"), and also in the PSU Admin menu header, has stopped working, it shows the typical 'broken' image thumbnail.
It's in a published folder which has no auth configured (though I tried it with), the published folder still exists but when trying to navigate directly to the image via url, it throws "Page Not Found". Still not sure on the root cause, but noticed in 2026.2.0 on my dev server, it isn't happening on 2026.1.7 on my prod server with the same config.
@insomniacc
Interestingly, I had a comment here about this issue and it was removed. There was also a follow up one from @Adam Driscoll linking to Discord that is no longer here.
Disregard, it was moved to Bug Reports.
Published Folders Not Working in 2026.2.0
@Adam Driscoll, correct just a standard published folder to serve up some images. Both authenticated and unauthenticated, with roles and without. Accessing it with the browser and also have the admin console pointing to it for branding.
Published Folders Not Working in 2026.2.0
Looks like Published Folders stopped working. I'm seeing this repeated in the system logs.
2026-06-01 09:38:01.561 -05:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 GET https://dev-universal.xxxxxx.com/login?returnUrl=/admin/platform/publishedFolders - null null
2026-06-01 09:38:01.566 -05:00 [INF][Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler] Cookies was not authenticated. Failure message: Identity missing in session store
2026-06-01 09:38:01.580 -05:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint '/Login'
2026-06-01 09:38:01.580 -05:00 [INF][Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker] Route matched with {page = "/Login", action = "", controller = ""}. Executing page /Login
2026-06-01 09:38:01.583 -05:00 [INF][Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker] Executing handler method PowerShellUniversal.Login.OnGet - ModelState is "Valid"
2026-06-01 09:38:01.690 -05:00 [INF][Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker] Executed handler method OnGet, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult.
2026-06-01 09:38:01.692 -05:00 [INF][Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker] Executed page /Login in 109.4217ms
2026-06-01 09:38:01.693 -05:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executed endpoint '/Login'
2026-06-01 09:38:01.693 -05:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 GET https://dev-universal.xxxxxx.com/login?returnUrl=/admin/platform/publishedFolders - 200 null text/html; charset=utf-8 129.376msPowerShell Universal - 2026.2.0
There is an extraneous close parentheses on the MSI download URL.
PowerShell Universal - 2026.1.2
Lots of errors in the system logs and I cannot log in; getting not authorized.
2026-02-12 20:47:26.081 -06:00 [ERR][] Startup: The term 'New-UDDashboard' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
2026-02-12 20:47:26.138 -06:00 [ERR][] Startup: The term 'New-UDDashboard' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
2026-02-12 20:47:26.154 -06:00 [ERR][] Startup: at <ScriptBlock>, C:\Program Files (x86)\Universal\Docs\index.ps1: line 387
at <ScriptBlock>, <No file>: line 1
2026-02-12 20:47:26.167 -06:00 [ERR][] Startup: at System.Management.Automation.CommandDiscovery.LookupCommandInfo(String commandName, CommandTypes commandTypes, SearchResolutionOptions searchResolutionOptions, CommandOrigin commandOrigin, ExecutionContext context)
at System.Management.Automation.CommandDiscovery.TryModuleAutoDiscovery(String commandName, ExecutionContext context, String originalCommandName, CommandOrigin commandOrigin, SearchResolutionOptions searchResolutionOptions, CommandTypes commandTypes, Exception& lastError)
at System.Management.Automation.CommandDiscovery.LookupCommandInfo(String commandName, CommandTypes commandTypes, SearchResolutionOptions searchResolutionOptions, CommandOrigin commandOrigin, ExecutionContext context)
at System.Management.Automation.PipelineOps.AddCommand(PipelineProcessor pipe, CommandParameterInternal[] commandElements, CommandBaseAst commandBaseAst, CommandRedirection[] redirections, ExecutionContext context)
at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2026-02-12 20:47:26.184 -06:00 [ERR][] Failed to get app. App was null. Make sure to return an app from your script.
2026-02-12 20:47:26.147 -06:00 [ERR][] Startup: at <ScriptBlock>, C:\Program Files (x86)\Universal\Docs\index.ps1: line 387
at <ScriptBlock>, <No file>: line 1
2026-02-12 20:47:26.345 -06:00 [ERR][] Startup: at System.Management.Automation.CommandDiscovery.LookupCommandInfo(String commandName, CommandTypes commandTypes, SearchResolutionOptions searchResolutionOptions, CommandOrigin commandOrigin, ExecutionContext context)
at System.Management.Automation.CommandDiscovery.TryModuleAutoDiscovery(String commandName, ExecutionContext context, String originalCommandName, CommandOrigin commandOrigin, SearchResolutionOptions searchResolutionOptions, CommandTypes commandTypes, Exception& lastError)
at System.Management.Automation.CommandDiscovery.LookupCommandInfo(String commandName, CommandTypes commandTypes, SearchResolutionOptions searchResolutionOptions, CommandOrigin commandOrigin, ExecutionContext context)
at System.Management.Automation.PipelineOps.AddCommand(PipelineProcessor pipe, CommandParameterInternal[] commandElements, CommandBaseAst commandBaseAst, CommandRedirection[] redirections, ExecutionContext context)
at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2026-02-12 20:47:26.363 -06:00 [ERR][] Failed to get app. App was null. Make sure to return an app from your script.
2026-02-12 20:47:27.199 -06:00 [ERR][] Startup: The 'Get-Variable' command was found in the module 'Microsoft.PowerShell.Utility', but the module could not be loaded. For more information, run 'Import-Module Microsoft.PowerShell.Utility'.
2026-02-12 20:47:38.513 -06:00 [ERR][] Startup: at New-UDApp, C:\Program Files (x86)\Universal\Modules\Universal\UniversalDashboard.MaterialUI.psm1: line 3048
at <ScriptBlock>, C:\ProgramData\UniversalAutomation\Repository\dashboards\Troubleshooting\Troubleshooting.ps1: line 1
at <ScriptBlock>, <No file>: line 1
2026-02-12 20:47:38.666 -06:00 [ERR][] Startup: at System.Management.Automation.CommandDiscovery.TryModuleAutoDiscovery(String commandName, ExecutionContext context, String originalCommandName, CommandOrigin commandOrigin, SearchResolutionOptions searchResolutionOptions, CommandTypes commandTypes, Exception& lastError)
at System.Management.Automation.CommandDiscovery.LookupCommandInfo(String commandName, CommandTypes commandTypes, SearchResolutionOptions searchResolutionOptions, CommandOrigin commandOrigin, ExecutionContext context)
at System.Management.Automation.PipelineOps.AddCommand(PipelineProcessor pipe, CommandParameterInternal[] commandElements, CommandBaseAst commandBaseAst, CommandRedirection[] redirections, ExecutionContext context)
at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2026-02-12 20:47:38.960 -06:00 [ERR][] Startup: Cannot bind argument to parameter 'Path' because it is null.
2026-02-12 20:47:38.982 -06:00 [ERR][] Startup: at New-UDApp, C:\Program Files (x86)\Universal\Modules\Universal\UniversalDashboard.MaterialUI.psm1: line 3049
at <ScriptBlock>, C:\ProgramData\UniversalAutomation\Repository\dashboards\Troubleshooting\Troubleshooting.ps1: line 1
at <ScriptBlock>, <No file>: line 1
2026-02-12 20:47:39.502 -06:00 [ERR][] Startup: at System.Management.Automation.ParameterBinderController.BindPositionalParametersInSet(UInt32 validParameterSets, Dictionary`2 nextPositionalParameters, CommandParameterInternal argument, ParameterBindingFlags flags, ParameterBindingException& bindingException)
at System.Management.Automation.ParameterBinderController.BindPositionalParameters(Collection`1 unboundArguments, UInt32 validParameterSets, UInt32 defaultParameterSet, ParameterBindingException& outgoingBindingException)
at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments)
at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments)
at System.Management.Automation.CommandProcessor.BindCommandLineParameters()
at System.Management.Automation.CommandProcessor.Prepare(IDictionary psDefaultParameterValues)
at System.Management.Automation.CommandProcessorBase.DoPrepare(IDictionary psDefaultParameterValues)
at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream)
at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input)
--- End of stack trace from previous location ---
at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input)
at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2026-02-12 20:47:39.634 -06:00 [ERR][] Startup: Value cannot be null. (Parameter 'The provided Path argument was null or an empty collection.')
2026-02-12 20:47:39.899 -06:00 [ERR][] Startup: at New-UDApp, C:\Program Files (x86)\Universal\Modules\Universal\UniversalDashboard.MaterialUI.psm1: line 3051
at <ScriptBlock>, C:\ProgramData\UniversalAutomation\Repository\dashboards\Troubleshooting\Troubleshooting.ps1: line 1
at <ScriptBlock>, <No file>: line 1
2026-02-12 20:47:40.268 -06:00 [ERR][] Startup:
2026-02-12 20:47:40.454 -06:00 [ERR][] Startup: The 'ConvertTo-Json' command was found in the module 'Microsoft.PowerShell.Utility', but the module could not be loaded. For more information, run 'Import-Module Microsoft.PowerShell.Utility'.
2026-02-12 20:47:40.471 -06:00 [ERR][] Startup: at New-UDApp, C:\Program Files (x86)\Universal\Modules\Universal\UniversalDashboard.MaterialUI.psm1: line 3060
at <ScriptBlock>, C:\ProgramData\UniversalAutomation\Repository\dashboards\Troubleshooting\Troubleshooting.ps1: line 1
at <ScriptBlock>, <No file>: line 1
2026-02-12 20:47:40.486 -06:00 [ERR][] Startup: at System.Management.Automation.CommandDiscovery.TryModuleAutoDiscovery(String commandName, ExecutionContext context, String originalCommandName, CommandOrigin commandOrigin, SearchResolutionOptions searchResolutionOptions, CommandTypes commandTypes, Exception& lastError)
at System.Management.Automation.CommandDiscovery.LookupCommandInfo(String commandName, CommandTypes commandTypes, SearchResolutionOptions searchResolutionOptions, CommandOrigin commandOrigin, ExecutionContext context)
at System.Management.Automation.PipelineOps.AddCommand(PipelineProcessor pipe, CommandParameterInternal[] commandElements, CommandBaseAst commandBaseAst, CommandRedirection[] redirections, ExecutionContext context)
at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2026-02-12 20:47:40.979 -06:00 [ERR][] Failed to get app. App was null. Make sure to return an app from your script.
2026-02-12 20:47:39.387 -06:00 [ERR][] Startup: The term 'New-UDDashboard' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
2026-02-12 20:47:41.152 -06:00 [ERR][] Startup: at <ScriptBlock>, C:\Program Files (x86)\Universal\Docs\index.ps1: line 387
at <ScriptBlock>, <No file>: line 1
2026-02-12 20:47:41.214 -06:00 [ERR][] Startup: at System.Management.Automation.CommandDiscovery.LookupCommandInfo(String commandName, CommandTypes commandTypes, SearchResolutionOptions searchResolutionOptions, CommandOrigin commandOrigin, ExecutionContext context)
at System.Management.Automation.CommandDiscovery.TryModuleAutoDiscovery(String commandName, ExecutionContext context, String originalCommandName, CommandOrigin commandOrigin, SearchResolutionOptions searchResolutionOptions, CommandTypes commandTypes, Exception& lastError)
at System.Management.Automation.CommandDiscovery.LookupCommandInfo(String commandName, CommandTypes commandTypes, SearchResolutionOptions searchResolutionOptions, CommandOrigin commandOrigin, ExecutionContext context)
at System.Management.Automation.PipelineOps.AddCommand(PipelineProcessor pipe, CommandParameterInternal[] commandElements, CommandBaseAst commandBaseAst, CommandRedirection[] redirections, ExecutionContext context)
at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2026-02-12 20:47:41.229 -06:00 [ERR][] Failed to get app. App was null. Make sure to return an app from your script.PowerShell Universal - 2026.1.1
I’m having issues after upgrading from 5.6.13 to 2026.1.1. I created a new app and new script to confirm nothing in my code is the issue.
Get-PSUScript fails to return anything when run from the app. Log messages are below. Sample code is listed in the log message lines [2] and [3].
[2/11/2026 6:26:38 AM] [Error] [App-Troubleshooting]
at 5a3125fd-6458-4382-8079-fbc64205a972: line 2
at 5a3125fd-6458-4382-8079-fbc64205a972: line 1
at Troubleshooting.ps1
[2/11/2026 6:26:38 AM] [Error] [App-Troubleshooting] Value cannot be null. (Parameter ‘value’)
[File]: Troubleshooting.ps1
[Endpoint]: 5a3125fd-6458-4382-8079-fbc64205a972
[Page]:
[1]
~~> [2] $Script = Get-PSUScript ‘Test_2026_1_1.ps1’
[3] Show-UDToast “Message: $($Script.Name)” -duration 30000
[4]
Additionally, connecting from vscode or a pwsh terminal using Connect-PSUServer returns the same error.
Get-PSUScript ‘Test_2026_1-1.ps1’
Get-PSUScript: Value cannot be null. (Parameter ‘value’)
PowerShell Universal - 2026.1.0
Can confirm Integrated works. Adam did send me reply that they found the issue and will be releasing an update soon.
PowerShell Universal - 2026.1.0
Will do! I do see that the Agent memory leak is fixed. Thanks for that!
PowerShell Universal - 2026.1.0
I didn’t do much troubleshooting yet, but upgrading from 5.6.13 to 2026.1.0 caused all of my apps to fail to start. Errors indicating New-UDApp didn’t exist.
Powershell Universal: React2Shell – CVE-2025-55182?
It is not: React vulnerability - CVE-2025-55182 - #3 by iainbrighton
Invalid URI using Get-PSUScript after Upgrade
Pretty much just took a fresh copy of the appsettings.json and updated anything for my installation. I suspect something legacy was in there or a bad configuration that I was not using that was interfering with v5.
Combine Form & Input Validation
This is exactly what I have done as well. I wanted so much more control on layout of the form. It does require manually checking the fields and prompting the user for invalid entries.
Capture username for user logged into user interface
$User should get you what you need. Here’s a link to built-in variables: Variables | PowerShell Universal
PowerShell Universal - 5.5.4
@Adam Driscoll, I don’t see that New-UDAutocomplete is included in the changelogs but do see it fixed on the issues tracker for this version for the issue I raised using the static option (not New-UDAutocompleOptions). I’m finding populating it now works but is slow on large data loads.
I load about 4000 options and on 5.5.2 this would populate in about 1 second.
When working around the issue in 5.5.3 and using New-UDAutocompleteOptions, it still loaded quickly.
I’m finding it is taking 18 seconds to populate on 5.5.4 using either static options or New-UDAutocompleteOptions.
New-UDAutocomplete Broken in New Update
Raised the issue here: New-UDAutocomplete no longer works with static options · Issue #4831 · ironmansoftware/powershell-universal · GitHub
New-UDAutocomplete Broken in New Update
Product: PowerShell Universal
Version: 5.5.3Upgraded from 5.5.2 to 5.5.3 and noticed a fix to using New-UDAutocompleteOption but now without is broken. Anyone else able to confirm before I submit an issue?
My existing code worked after the upgrade but later is no longer working, which I find odd. I confirmed the same behavior in my dev environment. It worked right after the upgrade but then today it’s not working. I upgraded prod last night and this morning autocomplete worked for me. A user reported it not working and I confirmed it’s no longer working.
New-UDApp -Content {
#Works in v5.5.3 but not in 5.5.2
New-UDAutocomplete -Options @(
New-UDAutocompleteOption -Name 'Adam D' -Value '1'
New-UDAutocompleteOption -Name 'Sarah F' -Value '2'
New-UDAutocompleteOption -Name 'Tom S' -Value '3'
)
#Works in v5.5.2 but not in 5.5.3
New-UDAutocomplete -Options @('Test', 'Test2', 'Test3', 'Test4')
}List of colors specifically used by New-UDIcon
I’ve added this color palette code to my existing reference app that already had icon search and typography examples. Thanks for sharing.
Invalid URI using Get-PSUScript after Upgrade
Of course after I post this, I decided to clean up the appsettings.json to match the new installation. That did the trick.
Invalid URI using Get-PSUScript after Upgrade
Product: PowerShell Universal
Version: 5.5.1Upgraded from 4.5.2 to 5.5.1 and now receiving Invalid URI: The format of the URI could not be determined.
Get this error in an app or in the PSU Admin Terminal. Connecting from my PC in vscode to the server returns expected output.
New server install doesn’t exhibit this issue.
What am I missing?
Screenshot from admin terminal:

App code is simply:
New-UDApp -Content {
Get-PSUScript
}