WinGet the Windows Package Manager - Demitrius Nelon - PSConfEU 2023

Поділитися
Вставка
  • Опубліковано 6 лип 2023
  • This is Demetrius Nealon, the product manager at Microsoft for Winget, the Windows package manager. I'm excited to be here in Prague for my second PowerShell conference. Initially, I felt a bit of imposter syndrome because I hadn't worked extensively with PowerShell, but as the product owner of Winget, I took on the responsibility of implementing native PowerShell support for it.
    We've been making great progress with Winget, developing a Calm API and integrating it with the CLI. We've also been collaborating with teams from the Microsoft Store, Intune, and Xbox to ensure equal access to the code. And we even have an open-source UWP application on GitHub to serve as an example.
    Today, we'll be focusing on the configuration management side of Winget, specifically DSC integration. We're constantly working to improve the user experience, refining the CLI and PowerShell cmdlets by incorporating user feedback from GitHub.
    One of our main goals is to create PowerShell modules for the COM APIs, with a particular focus on the DSC module. These modules will be organized under Microsoft.Winget and will have a top-level module that combines them.
    We've faced some challenges when it comes to differences between the CLI and PowerShell. For example, the CLI has a command for upgrading packages, but there's no equivalent in PowerShell. We're working on addressing this issue and have marked the Winget client as pre-release to indicate that it should be treated as such. Our goal is to release it as a GA (general availability) version at the next Build conference.
    We're also working on closing the gaps between existing commands and functions in the CLI, as well as addressing the differences between Windows PowerShell and PowerShell 7. We're incorporating PowerShell hosting and .NET to ensure correct assembly placement.
    When it comes to installation, we're focused on reducing the footprint for Windows 11 by installing a stub package first and then downloading the larger assemblies from the store. We want to provide a seamless installation experience where users can run commands immediately after a fresh install. Feedback on this work is greatly appreciated.
    In terms of configuration management, Winget plays a crucial role. We're continuously improving it, and the upcoming 1.5 release will introduce package pinning behavior to control upgrades. This is important for managing dependencies in DSC and ensuring the right configuration. We've decided to invest in PowerShell DSC and collaborate with teams like DevDiv, Xbox, and Intune to align our vision and address their specific challenges.
    We've made significant progress in enabling private repositories, especially for air-gapped environments and highly regulated industries. This allows us to ensure the origin of modules and packages and establish end-to-end solutions. We're also looking to simplify the process by implementing a single command that backs up the entire Windows configuration, including installed applications, configurations, PowerShell profile, settings, and preferences.
    We're exploring improvements in reverse DSC to make configuration files for complex systems like IIS or SQL Server more efficient and manageable. Additionally, we're addressing bug reports with WinGit configuration, such as variable issues with the file resource and problems with the invoke DSC resource. We're working on stabilizing the invoke DSC commandlet by utilizing stable components like PowerShell DSC v2.
    We understand the challenges with package pinning and upgrades, and even though we can logically pin a package in Winget to prevent updates, we can't control user or application-initiated upgrades. However, we're looking into adding metadata or decoration to manifests and working with publishers to improve the upgrade process.
    In terms of enterprise management, we're working on separating the CLI experience from the COM API. We're creating an allow list for authen…

КОМЕНТАРІ •