Feature Request

Feature request forum for Devolutions PowerShell Universal

Newest

Most active

Most votes

avatar

Michael Taylor

Universal Module - OIDC flow for Connect-PSUServer

A bit of a big ask, but would be a nice to have, not critical. Currently for API access a user either has to supply some credentials or an API token that has been pre-made ahead of time. But for OIDC based deployments only a pre-made API key is the only real option, which means you have to login to the admin ui, make the token (preferably short lived) and then put that back into your console securely. Instead for this, similar to how HashiCorp vault handles this, we're asking if Connect-PSUServer could activate a OIDC flow, whereby a flag like Connect-PSUServer -ComputerName ' https://some.psu.server.domain.com ' -OIDCMakeToken Could exist, that provides a browser link, the user goes to the browser link, goes through their OIDC flow configured in PSU and then lands at a consent screen in PSU asking for authorization to make a App Token for your current powershell session (limited by some short-lived expiry and tied to the user account that completed the flow). This in total will reduce the amount of screens an OIDC user has to go through to use the Universal module while utilizing as much of the current systems as I can think off to help with dev time. To take this a step further, this could also be tied to permissions, so that only certain users would be able to use the OIDC flow to quickly generate a App Token and/or it being a separate permission means that people can generate their own but not be permitted to control others app tokens or system app tokens because they wouldn't have access to the main app tokens area. Anyway, sorry, lots of words. The Tl;Dr: Have new flag on Connect-PSUServer to allow a user to make a API Token from the terminal with minimal browser interaction while still being secure. Would love to know what you think.

3

40

1

avatar

Lars Lervik

avatar

saschaspiekermann

Enable Search and Filtering on Job Notes in PowerShell Universal

Description When starting a script using Invoke-PSUScript, it is possible to provide additional context via the -Notes parameter. These notes are displayed in the Job Overview and are very useful for tracking the origin and purpose of a job execution. However, the current Job Overview does not allow searching or filtering based on the contents of the Notes field. Use Case We frequently use PowerShell Universal as an execution backend for external systems. An external application invokes the PowerShell Universal API, which then starts a long-running script as a background job. In these scenarios, we often pass an external reference ID, ticket number, request ID, or correlation ID through the -Notes parameter. The information is visible in the job details, but it cannot be used to locate jobs later through the search functionality in the Jobs view. Problem As the number of jobs grows, it becomes difficult to find a specific job that belongs to a particular external request or transaction. Users must manually browse through jobs or implement alternative tracking mechanisms outside of PowerShell Universal. Proposed Enhancement Extend the Jobs search and filtering functionality to include the Notes field.

1

9

0

avatar

saschaspiekermann

Configurable MCP Server Connection Name in VS Code

Problem When adding a PSU MCP server in VS Code, the connection can be configured either by manually adding /api/v1/mcp to the mcp.json configuration or by using the extension's server connection feature, which automatically appends the endpoint. In both cases, the resulting MCP server connection is automatically named Universal.Server . As a consequence, multiple PSU MCP server connections appear with the same name, making it impossible to distinguish between them in the VS Code UI. Expected Behavior The displayed MCP server name should be configurable or automatically derived from the target server information. Possible approaches: Allow specifying a custom display name in the mcp.json configuration. Use the server hostname as the default connection name. Fall back to the current Universal.Server name only when no custom name or hostname is available. Current Behavior All PSU MCP server connections are displayed as Universal.Server, regardless of the configured endpoint or host. [image] Impact Users managing multiple PSU MCP server instances cannot easily identify which connection belongs to which environment (e.g. Development, Test, Production) or host, increasing the risk of connecting to the wrong server. Benefits Easier management of multiple MCP server connections Better usability and visibility within VS Code Reduced risk of connecting to the wrong environment Consistent behavior with other tools that support custom connection names [image]

1

18

0

avatar

saschaspiekermann

Support HTTP Proxy for AI Endpoints

Our PSU servers are located in an internal production network without internet access. It would be nice for the AI features if we could use our http proxy server to access the OpenAI compatible endpoint within our Azure environment. I've set the proxy under Settings/General/Plattform, the AI couldn't talk to Azure (and if this would be the right way: A NOPROXY option would be needed as many internal API services are not reachable by the proxy).

1

26

1

avatar

Adam Driscoll

avatar

Michael Taylor

Resolved

PSU Triggers - Set the parameters that a trigger provides to its trigger script

In PSU Triggers, you are unable to set the parameters that a trigger provides to its trigger script, meaning that if I want to use the same trigger script but with different parameters to the default then I must copy the entire script and change the defaults to those parameters, even though the same logic is running, it just needs different parameters. This would help with script reuse for similar resulting triggers but with the goal of sending things to other destinations.

Recommended Answer

8 days ago

Michael Taylor Good news! We have already implemented this for 2026.3.0. It's going through QA right now. We've had folks ask in the past because it does really complicate the trigger feature without it.

1

32

1

avatar

Adam Driscoll

avatar

timjacobs

Permission Set for "Edit/Save" Buttons in Manual Git Mode

We rely heavily on Git manual mode, but the Edit/Save toggle in the header bar only appears for full platform Administrators . We've tried every permission combination we could find related to Git, without success. The Edit/Save buttons simply never render for non-admin users. Is it possible to introduce a permission (or permission set) that grants Git edit/commit capability without requiring full platform Administrator rights? [image] [image] Use case: As an administrator, I'd like others on my team, who are intentionally not platform admins, to be able to edit and commit changes to Git. All of our changes promote from Test to Prod via GitHub PRs, so we'd like non-admins to be able to commit in manual mode to stage their PRs. One thing we noticed: if a non-administrator is granted the settings.git.commit/* permission, they can reach the commit page that the "Save" button navigates to (/admin/settings/git/commit) and submit changes there, but they cannot initiate Edit mode, because the Edit/Save buttons never appear for them. Could this capability be tied to (or piggybacked on) the settings.git.commit/* permission so it also surfaces the Edit/Save controls?

1

30

2

avatar

timjacobs

avatar

Jeff Dagenais

Disable AI Features

Request from a customer Customer would like to disable the AI features in PSU. We should be able to hide them in the admin console as well as disable the MCP URL.

6

53

1

avatar

Jeff Dagenais

avatar

krle

One-way git sync - allow creating new tokens

Hi :) We have a bunch of servers that are running one-way git sync (only pulling). Sometimes we have to create a new token on these servers, but the console is read-only = we cant do it. So the "fix" is to change git settings, then create the new token, and then change the git settings back. It would be great, if we could create new tokens, without having to do this.

1

50

1

avatar

Adam Driscoll

avatar

AniTexs

AI Tools (MCP)

While playing around with the MCP Server, I really wish these things were possible: New Parameters for New-PSUAITool - Module and -Command like in Endpoints -Scriptblock {} to have the code inside the aitools.ps1 file. -Endpoint to use a endpoint instead of a script (Max wait time would need to be 60 or lower as a max) -ArchiveJobAfterCompletion to automatically archive the script run job log after completion or retrival, currently it creates a mess in the jobs table. New Cmdlet New-PSUAIToolResponse to add the "structured" element to the response via the mcp server. The Idea is more or less the same as the New-PSUApiResponse cmdlet. Currently the output looks like this: { "content": [ { "type": "text", "text": "Information - {\r\n \"GivenName\": \"XXXX\",\r\n \"Surname\": \"XXX\",\r\n \"UserPrincipalName\": \"XXXX@XXXXX.XX\",\r\n \"Enabled\": true,\r\n \"SamAccountName\": \"XXXXX\",\r\n \"SID\": {\r\n \"BinaryLength\": XX,\r\n \"AccountDomainSid\": \"MEH\",\r\n \"Value\": \"XXXXXXX\"\r\n },\r\n \"DistinguishedName\": \"Woo Hooo\",\r\n \"Name\": \"XXXXX\",\r\n \"ObjectClass\": \"user\",\r\n \"ObjectGuid\": \"GUID\",\r\n \"PropertyNames\": [\r\n \"DisplayName\",\r\n \"DistinguishedName\",\r\n \"Enabled\",\r\n \"GivenName\",\r\n \"mail\",\r\n \"Name\",\r\n \"ObjectClass\",\r\n \"ObjectGUID\",\r\n \"SamAccountName\",\r\n \"SID\",\r\n \"Surname\",\r\n \"UserPrincipalName\"\r\n ],\r\n \"AddedProperties\": [],\r\n \"RemovedProperties\": [],\r\n \"ModifiedProperties\": [],\r\n \"PropertyCount\": 12,\r\n \"DisplayName\": \"XXXXX XXXX\",\r\n \"mail\": \"XXXX@XXXX.XX\",\r\n \"ObjectGUID\": \"XXXXXXXX\"\r\n}" } ] } It's fine, but being able to return a structured element inside the "content" object, would help, this would also drastically help with not needing to convert to json before returning the result. A parameter to choose encoding could be nice, like formats like Markdown , XML , Json , Csv etc.

1

63

1

avatar

Adam Driscoll

avatar

silentkillzr

Trigger for PSUNI Alerts?

Maybe I'm missing something, but is there a trigger that can fire for alerts in PSUNI? We've been having schedules go invalid due to some bad formatting in a query, but now that it's resolved, I'm left wondering if I can set up some notifications to external sources. I'll also look into hooking up PSUNI to Zabbix for monitoring jobs. If we had a trigger for alerts, I could send that off to my teams script for example. Does "health check failed" fire if psuni doesn't load the schedules and throws an error?

2

50

6

avatar

silentkillzr

avatar

jaltmann

Move version information back to top

I have to scroll to the bottom to find my version, it was way more convenient on top (or at least put in a help menu).

3

56

1

avatar

Adam Driscoll

avatar

krle

Winget

Hi :) If you search in Winget for Devolutions, you will see most of their products - it would be awesome, to have PSU in there as well. Then we can in a very simple way, just update our products, and even include it in CI/CD pipelines.

1

45

1

avatar

Adam Driscoll

avatar

Dynamic66

New-PSUPublishedFolder -DefaultDocument

As far as i know it can only be configured in the .universal/publishedFolders.ps1 witch unfortunately hides this awesome feature unless you read the docs. It works quite well and saved me a bunch of time. Please consider adding it to the published Folders settings modal long term :D https://docs.devolutions.net/powershell-universal/apps/custom-frontends#hosting-static-assets

1

45

1

avatar

Adam Driscoll

avatar

krle

Appsettings.json - support for custom tags

Hi :) PSU sets a set of default tags on the computer object, that is based on the environment its in. It would be ideal that we could add custom tags, such as the environment (Prod / Test / Dev), Owner, business service, etc - to align it better with our current CMDB platform. I believe it should be in the appsettings.json, since this one is not normally synced to Git - so setups with a prod and a test instance of PSU, will not conflict on this. It should also allow us to write anything we want, so that we arent "stuck" with a key/value set, defined from Devolutions. Bonus - if the tags could be read on the fly, that would be nice. So adding a new tag, wouldnt have to restart the service, for it to appear - but its a nice to have thing.

4

54

2

avatar

krle

avatar

insomniacc

Explicit error feedback on tool failure

I just tested an AI prompt with a tool that I had access to, which obviously worked fine, I then restricted it to a role I didnt have and prompted 'run the hello world script and provide the output, on failure provide all possible exceptions, error messages and error properties' however the only response I ever get is 'Error: Function failed.' I think it would be good, in the case of a failure due to authentication, such as a role, to have an explicit message so that the Agent can respond accordingly and report back to the user to indicate a lack of permissions or auth failure. v2026.2.1

1

58

1

avatar

Adam Driscoll

avatar

Dynamic66

"Create New" option in select dropdowns

Hello, having a "Create New" option would be very handy in all select options in the admin console. Example: You want to create a new app, and in the creation modal, you need to select an auth role that does not exist yet. It would be nice to have a "New" option to create one on the fly without navigating to a different page. I have encountered this in other programs recently and believe it would be a very nice quality-of-life improvement for PSU.

3

70

1

avatar

Adam Driscoll

avatar

mshepard70

Workflow documentation

I've played with workflows some and have a decent grasp of $PSUItem and $Workflow. I haven't managed to get the "Deconstruct hashtable output" to anything that I can discern. Any chance you can add some documentation to show what that setting does?

1

65

1

avatar

DataTraveler

avatar

krisr

Native AI Chat Component

Hi everyone, With AI assistants becoming a standard UI/UX pattern in modern web applications, I think it’s time to talk about bringing this capability natively into PowerShell Universal. Lately, I’ve been working on a custom module called AiChatFloatingButton for PSU. To be honest, most of it was "vibe coding" with AI assistance, but it still took a ton of work to get the styling, animations, state handling, and theme-aware CSS working correctly without breaking PSU's re-rendering logic. The good news is that it actually works and looks pretty decent! It supports any OpenAI-compatible API (Ollama, Open WebUI, Azure, etc.), handles dark/light modes via CSS variables, and uses standard New-UDelements. However, as much as I enjoy tweaking custom components and hacking overlays, a native solution would be a massive game-changer for the PSU community for several reasons: Seamless Integration: No need to manually manage $page: scope variables or complex Set-UDElement / Sync-UDElement logic just to keep the chat history and animations smooth. It would just work out of the box with standard New-UD... syntax. Unified UI & Theme Engine: A native component would automatically respect the active PSU dashboard theme without custom CSS injection hacks. Enterprise Ready: Having a built-in, standard way to connect dashboards to LLM endpoints (like Azure OpenAI, Ollama, or OpenAI API) would make PSU an even more powerful framework for internal enterprise tools. Since Universal Dashboard is built on React, implementing this natively wouldn't require building everything from scratch. There are fantastic, production-grade open-source libraries available that could be wrapped into a New-UD component: assistant-ui (@assistant-ui/react) – A highly popular, production-ready React library specifically designed for AI chat experiences. It handles streaming lifecycles, markdown parsing, and has excellent shadcn/ui inspired primitives that match modern web aesthetics perfectly. deep-chat (deep-chat-react) – A fully customizable, framework-agnostic AI chat component. It connects directly to popular APIs (OpenAI, Claude, custom endpoints) out of the box with minimal configuration. react-chatbotify – Another very flexible option with built-in LLM connectors, response streaming, and custom theme support. Alternatively, a native combination of Material UI's Fab (Floating Action Button) combined with a properly anchored Floating UI popover drawer enclosing a standard message list would be incredibly powerful. For anyone interested, or if the dev team wants to look at my implementation details i can share my module code.

1

44

0

avatar

krle

Put an App into maintenance mode

Hi :) Normally we can put an App into maintenance mode, and prevent non-admin users from accessing it during maintenance. But we have cases where we develop in the dev/test instance of our platform, sync to git, and then the production instance pulls it (one-way sync). So we have to put the dev version into maintenance mode aswell, which is not ideal, since our Q&A testers cant actually test anything, if we need to debug on a new issue during the maintenance. So - please allow us to set the maintenance mode for apps, even if one-way sync is enabled - and perhaps add a checkmark, that the maintenance mode will be reverted to its Git stage settings, on the next reboot of the service.

1

57

1

avatar

rubentapia

avatar

schubfre

MCP Tools: Rate limiting

Spawned from https://forum.devolutions.net/topics/55354/mcp-tools-high-cpu-load To prevent abuse, denial-of-service or simple overloading it would be prudent to be able to configure rate limiting and/or concurrency settings for MCP tools. The settings should be central and not on a per-script basis.

1

58

1

avatar

Adam Driscoll

avatar

schubfre

MCP Tools: Set dedicated computer groups and environments

Spawned from https://forum.devolutions.net/topics/55354/mcp-tools-high-cpu-load To combat high loads caused by jobs spawned MCP tools, it would also be a good idea to be able to configure Computer Groups and Enviroments where the MCP tools are allowed to start jobs.

2

56

0

avatar

kavm

Using host headers to select app

Running version: 2026.1.6 IIS is not in use. Today our default app is configured with a URL of "/" and it works perfectly when just using the host name as URL in a browser. Now we would like to host multiple "default apps" based on which host name is being accessed (like you can do with host headers in IIS). I've tried just setting a host name of https://server.domain.com/ as URL for the app, but this just redirects the browser to /admin when accessing that host name. Is IIS a requirement for doing this or should it be possible directly in PSU? Or am I going about this in the wrong way? Thanks!

1

92

3

avatar

kavm

avatar

AniTexs

Implemented

Connect to PSU Server via VS Code Extension

Can there be a button for executing the `Connect-PSUServer` command in the PowerShell Extension Console? The new Update is lovely, but really missing the connection from the old update.

1

83

1

avatar

Adam Driscoll

avatar

michaelhanson1458

Scripts / Folder view could be greatly enhanced

I believe the overall UI for the scripts folder view could use a bit of love. [image] v 📂 Scripts > 🔷 ActiveDirectory 📁 Admin > 🎭 Playwright (Combined with smooth hover highlights, a cleaner font, and a full-bleed row selection model.)

1

69

1

avatar

Adam Driscoll

avatar

AniTexs

SDK for Plugins

Release a SDK for Developing custom plugins to work with PowerShell Universal. I want to expand the functionality of PSU with a better notification system which would not rely on powershell to run, so I could ensure I'd get notified even if PowerShell is acting up. Also a extension for FTP/SFTP manager. This is to extend the functionality of the Admin side of PSU.

1

82

2

avatar

AniTexs

1 - 25 of 41 items