{"id":20919,"date":"2026-02-17T11:21:34","date_gmt":"2026-02-17T19:21:34","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/powershell\/?p=20919"},"modified":"2026-02-17T11:21:34","modified_gmt":"2026-02-17T19:21:34","slug":"powershell-openssh-and-dsc-team-investments-for-2026","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/powershell-openssh-and-dsc-team-investments-for-2026\/","title":{"rendered":"PowerShell, OpenSSH, and DSC team investments for 2026"},"content":{"rendered":"<h1>Team investments for 2026<\/h1>\n<p>As is tradition, we are publishing our planned team investments for the year.\nThis is based on our current understanding of customer and community needs,\nbut is subject to change based on emerging priorities throughout the year.<\/p>\n<h2>Community thanks!<\/h2>\n<p>Before we dive into the planned investments, I want to take a moment to thank the\ncommunity for their continued support and contributions to PowerShell, OpenSSH, DSC, and related tooling\nover the past year.<\/p>\n<h2>Security improvements<\/h2>\n<p>Security is a top priority and compliance requirements are constantly evolving. As security issues\nare discovered and reported, and compliance requirements evolve, we must prioritize this work over\nfeature development. This often results in work that&#8217;s not directly visible to end users.<\/p>\n<h2>Bug fixes and community PRs<\/h2>\n<p>Feedback and contributions from the Community are invaluable. We continue to prioritize fixing\nreported critical issues, as well as prioritizing the review and merging of community pull requests.<\/p>\n<h2>PowerShell 7.7<\/h2>\n<h3>PSUserContentPath relocation<\/h3>\n<p>It&#8217;s been a long standing issue where PowerShell stores user content such as modules, profiles, and help files\nin the user&#8217;s Documents folder.\nThis has caused issues for users who have their Documents folder synced with OneDrive or other cloud storage\nservices, leading to performance degradation and other unexpected behaviors.\nWe had published a <a href=\"https:\/\/github.com\/PowerShell\/PowerShell-RFC\/pull\/388\">design proposal in our RFC repo<\/a> last year and received lots\nof great feedback.\nThis issue has been particularly challenging due to the breaking nature of the change.\nI believe we&#8217;ve closed on a design that balances the needs of most users while minimizing disruption and\nshould have an experimental feature available in an early PowerShell 7.7 preview for users to test and provide feedback on.<\/p>\n<h3>Non-profile based module loading<\/h3>\n<p>Currently, PowerShell requires that you load modules in a profile script to immediately enable the features provided by those modules. Specific examples include <a href=\"https:\/\/learn.microsoft.com\/powershell\/scripting\/learn\/shell\/tab-completion\">tab-completers<\/a>\nand <a href=\"https:\/\/learn.microsoft.com\/powershell\/scripting\/dev-cross-plat\/create-feedback-provider\">Feedback Providers<\/a>.<\/p>\n<p>Application developers have expressed interest in being able to register these features\nwithout needing to update a profile script, which can be challenging in their installer.\nWe have a <a href=\"https:\/\/github.com\/PowerShell\/PowerShell-RFC\/pull\/386\">design proposal in our RFC repo<\/a> and would welcome\nany feedback from the community.<\/p>\n<h3>Delayed update notification<\/h3>\n<p>PowerShell has a feature that notifies users when a new version is available.\nHowever, consistent feedback from users is that the notification is not useful as it shows up immediately,\nbut the actual update may not be available for the package manager they use (e.g. Windows Store, Linux package manager).\nCurrent plan is to delay the notification by some predetermined interval to allow time for\nthe new version to propagate to various package managers.<\/p>\n<h3>Bash-style aliases\/macros<\/h3>\n<p>PowerShell <a href=\"https:\/\/learn.microsoft.com\/powershell\/scripting\/learn\/shell\/using-aliases\">aliases<\/a> are a way to create short names for cmdlets or commands.\nHowever, advanced users often want more powerful aliasing capabilities similar to Bash shell&#8217;s aliases and macros.\nThis includes features like parameter passing, command chaining, and conditional execution.\nWe are exploring options to enhance PowerShell&#8217;s aliasing capabilities to better meet these needs.<\/p>\n<h3>MCP Server and tools<\/h3>\n<p>As AI adoption continues to grow, we are seeing increased interest in integrating AI with PowerShell.\nEnablement of AI-assisted scripting and automation is a key use case.\nTo support this, we plan to develop a team supported <a href=\"https:\/\/modelcontextprotocol.io\/docs\/getting-started\/intro\">Model Context Protocol (MCP)<\/a>\nserver and associated tools that can be used to integrate AI models with PowerShell.\nOur initial focus will be on safety and security when using AI with PowerShell.<\/p>\n<h2>PSReadLine<\/h2>\n<h3>Context aware Predictive IntelliSense<\/h3>\n<p><a href=\"https:\/\/learn.microsoft.com\/powershell\/scripting\/learn\/shell\/using-predictors\">Predictive IntelliSense<\/a> in PSReadLine has\nproven to be a productivity booster for many users.\nHowever, one limitation is that the predictions are not context-aware based on the current directory.\nFor example, if a user is in a Git repository, they may want predictions that are relevant to Git commands and workflows.\nWe are exploring ways to make predictions more context-aware.<\/p>\n<h3>Decouple reading keyboard input from terminal rendering<\/h3>\n<p>Currently, PSReadLine essentially has a loop that reads keyboard input and renders the terminal output.\nThis design has worked well for traditional terminal environments, but limits new experiences we want to enable.\nThis is a fundamental change that will take time, and the benefits won&#8217;t be immediately visible to end users.\nHowever, this change is necessary to enable future enhancements.<\/p>\n<h2>PowerShellGallery\/PSResourceGet<\/h2>\n<h3>Complete Microsoft Artifact Registry (MAR) migration<\/h3>\n<p>One of the big investments last year for PSResourceGet was to add support for <a href=\"https:\/\/learn.microsoft.com\/powershell\/gallery\/powershellget\/how-to\/use-acr-repository\">Azure Container Registry (ACR)<\/a>.\nDespite its name, ACR is for more than just containers and can be used as a general purpose artifact repository.\nThis year, we plan to complete the migration to support <a href=\"https:\/\/mcr.microsoft.com\/\">Microsoft Artifact Registry (MAR)<\/a> as the default trusted\nrepository for Microsoft published modules and scripts.\nThis will provide a more reliable, scalable, and secure experience for users of PSResourceGet.<\/p>\n<h3>Concurrency and performance improvements<\/h3>\n<p>Users are often installing large modules (that have many dependencies as a family of modules) using PSResourceGet.\nAlternatively, many users are installing multiple modules at the same time (e.g. during initial setup).\nCurrently, PSResourceGet processes these requests serially, which can lead to long wait times.\nWe plan to enhance PSResourceGet to support concurrent downloads and installations, which should significantly improve performance in these scenarios.<\/p>\n<h3>General PowerShellGallery improvements<\/h3>\n<p>We are investing in some fundamental improvements to improve reliability, scalability, and security of the PowerShell Gallery.<\/p>\n<h2>Windows OpenSSH<\/h2>\n<h3>EntraID authentication support<\/h3>\n<p>A common ask from customers and partners is to support EntraID authentication for SSH connections.\nWe&#8217;re actively exploring options to enable this capability in our Windows OpenSSH fork.<\/p>\n<h2>Desired State Configuration v3 (DSC)<\/h2>\n<h3>DSC v3.2 General Availability<\/h3>\n<p>We continue to make progress on DSC v3.2 with multiple previews already available.\nCurrent expectation is that a Release Candidate and General Availability release will be available in the first half of 2026.<\/p>\n<h3>Python Adapter<\/h3>\n<p>For Linux usage of DSC, we have been working on a Python adapter to make it easier to create DSC resources using Python.\nWe expect to have previews available early this year and welcome community feedback.<\/p>\n<h3>DSC v3.3<\/h3>\n<p>We will continue to enhance DSC focusing on customer and partner asks immediately after the v3.2 General Availability release.<\/p>\n<h2>Conclusion<\/h2>\n<p>We have an exciting year planned with many investments across PowerShell, OpenSSH, DSC, and related tooling.\nWe will continue to prioritize security, bug fixes, and community contributions throughout the year.\nWe look forward to engaging with the community and hearing feedback on our planned investments.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Planned team investments for 2026 for PowerShell, OpenSSH, DSC, and related tooling.<\/p>\n","protected":false},"author":66121,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[231,248],"class_list":["post-20919","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","tag-openssh","tag-powershell"],"acf":[],"blog_post_summary":"<p>Planned team investments for 2026 for PowerShell, OpenSSH, DSC, and related tooling.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/20919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/66121"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=20919"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/20919\/revisions"}],"predecessor-version":[{"id":20921,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/20919\/revisions\/20921"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=20919"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=20919"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=20919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}