 Hi, I'm Demetrius Neelan and I am the Product Manager for Winged, and today I'm going to show you what's happened recently with Windows Server. I've got a VM that I've provisioned in Hyper-V. This is the current public preview, and I've just connected in and launched up terminal. So let's see what this looks like. It's my first time playing with the public bits here. So I'll minimize the Hyper-V from my local machine. We're in terminal. I'm going to go ahead and make that my default, since that's my favorite. We'll get back in. Let's see what version of Winged is already installed here, and it looks like it's 1.6. There's an upgrade. I'm curious if there's any other upgrades. I'll definitely get to fix my rainbow progress bar there. All right. Looks like there's an update to Winged, which is delivered in the app installer. Looks like there's an update for Windows Terminal and VC Libs. I'll go ahead and just kick those off. While that's running, basically the Windows package manager on Windows Desktop goes down to Windows 10 RS5, and we're shipping inbox with Windows 11 and going through a lot of the challenges of bootstrapping things. And the most popular command out there is this Winged upgrade all command. It's essentially just going to look at everything that it can find connected to one of the default sources. The two default sources today are the community repository that's open source at GitHub, as well as the Microsoft Store source. So by default, with no policies enabled, you should be able to have access to everything in the community repository and everything in the Microsoft Store. I will note on that upgrade that just finished for the app installer that includes Winged, it's mentioning that there's a restart to complete the upgrade. That will actually happen whenever this is all complete. The 95% progress bar there is just a bit of an anomaly. It's distributed as an MSIX package, which means it's being laid down. But until we start it again, we won't see that latest version. But since it's a CLI experience, as soon as this is completed, I'll run the version again, and we should see the latest 1.7 version being present. Now it's actually upgrading terminal. Since I'm running in terminal, this might cause a restart or force me to reset the terminal. That's not unexpected when you're upgrading a package while you're using it. So it's got the same thing there. It's just gonna want me to restart. So I'll go ahead and restart it real quick. And we're on the version. We're at 1.6 earlier. Now you can see we're on 1.7 and everything is up to date. If you run Winged by itself, you'll see a list of all of the default commands and arguments. Everything is documented at Microsoft Learn. But it's a package manager. So the first thing I mentioned was the settings. So I'm gonna run Winged settings to edit my settings file. Oh, and I don't have an IDE on here. Let's get Visual Studio Code. VS Code is the moniker for Visual Studio Code. So that's going to do a search. And since there's only one exact match for that, it'll go ahead and install Visual Studio Code. I'm doing this just so that I can get the nice IntelliSense and tool tips. While that's running, I'm gonna go and bring up my local settings on my local box. So here's PowerShell on my local. And it'll default to the Visual Studio Code on my local and I'll grab my settings file just to get that progress bar. While that's installing, I'll talk a little bit about the work we've been doing recently with configuration management. One of the big challenges with Windows, especially when we talk to developers and in many cases IT professionals as well is they're very interested in doing infrastructure as code or configuration as code. And what we've done with Wingit is we've partnered with the PowerShell team and we're leveraging PowerShell's desired state configuration. This is the same kind of technology that's been around on Windows Server since about 2013. But the big subtle difference here is we're using Wingit as the orchestrator. So you don't have the local configuration manager constantly reapplying the configuration and doing what it would do only in that server mode. In this case, primarily targeted at developers, you have the ability to run the configurations on demand. And if these configurations are checked into open source repositories, GitHub or other places, this can really help bootstrap some of these scenarios. And I've got a link from one of them that I'll go ahead and share in the browser now. This is just a sample that we have at the Dev Home repository, which is another developer tool. And by looking at this configuration file, I can see that it's going to turn on developer mode. It's going to use Wingit to install Python 3.12. It's gonna install GitHub desktop and it's going to install Visual Studio Code. Since I'm manually installing Visual Studio Code right now, that should essentially just be a no op when I run that configuration. And we get back and currently we're downloading the installer for Visual Studio Code. That's pretty much what Wingit does. We have all of the manifests at the community repository and they're all open source. So you can install anything from that repository and you can go contribute packages. And it's the Wingit packages repository where we have all of these. We've recently made some updates to the README to help optimize for authoring manifests, testing them, submitting them, or just filing issues to request them. And they're structured in this directory under manifest. We use the first letter of the publisher name so I can pick on M for Microsoft. I'm gonna go down and find Microsoft and then we'll go look for PowerShell. I'm gonna go ahead and put PowerShell 7 on server. And you can see several different versions are available. We keep a pretty long history of these if that's what the publisher wants. And the Wingit show command will allow you to do that. Give me just a moment here. Sorry about that. One of the requirements for the community is that packages install without user interaction. So even though you're seeing a UI, you won't have to interact with it. I could have passed dash dash silent or dash S to get a silent install. So now that I've got VS Code, I'm gonna do Wingit settings again on the server so that I can get my rainbow progress bar. Now that we've got that set up, I will do an install of PowerShell. Shouldn't be case sensitive, but kind of out of habit, I go ahead and fix those things. So now you can see I've got my rainbow progress bar and we're installing PowerShell 7 on this Windows server. And right after that is done, I will kick off that configuration that I shared earlier. One of the new features that we just recently added in 1.7 is the ability to install a configuration by passing in a URL. I know on a lot of the IT Pro side of things, this is probably something you don't want to enable. And we do have group policy to manage and control how Wingit is operated. And that allows you to control whether or not the CLI is available to users. The PowerShell modules will also follow those same policies. But if you're using Intune or if you're integrating directly with the COM APIs provided in Wingit, you'll be able to have that kind of integration and still you can prevent the users from having the CLI experience. So it's kind of best of both worlds, but we've gotten a lot of feedback from folks looking at Windows server, both for development and for enterprise management that are really interested in being able to leverage the benefits of the community repository or even standing up your own private REST source, which is something that we also have open source at the REST source repository. And I'll bring that one up for you. It's at Wingit CLI REST source. This will allow you to deploy an instance of a Wingit REST source on Azure, which means you can manage your own packages. You would simply go in and add that source to the Wingit client, or you can do that through group policy so that you can have your private applications or your line of business applications. Or if you just wanna prune down and select the ones that you want to have for your enterprise users, you can do that. Now we've got PowerShell 7 installed. I'm gonna switch over to that one. Got a restart terminal. And now I've got PowerShell 7. So we're gonna try this configuration that I have. I'm gonna copy and paste that URL. So this is going to download that configuration file. It's going to evaluate that YAML file looking for any of the PowerShell modules containing the resources that are specified. It will download those. I get this warning because of the nature and the power of configurations. You shouldn't run them if you don't know what they're doing, as well as the resources themselves. I'm gonna go ahead and accept here. And what it's doing now is it's gonna enable the developer mode for this. It's going to install Python. And like we said before, since I've already got VS code on the device, it should go ahead and skip that. And in theory, when this is done, I'll be able to do work on a Python project. While that's running, I'll also talk a little bit more about the future that we're working on with PowerShell's desired state configuration. We're looking at a V3 of this. And the main difference in V3 is we won't have this dependency on these PowerShell DSE resources that are class-based objects written in C-sharp. The idea is that you'll be able to have these built in any language, and you'll be able to expose those configuration APIs directly in your application, which is just another simplification of the orchestration here. So you won't need to download those external modules. The applications themselves will provide those configuration APIs, which means you can integrate directly with them yourself or they'll simply run faster with a WinGit configuration. All right, you can see GitHub desktop was installed with a shortcut on the desktop, and you can see Visual Studio Code was already installed. So it looks like my configuration was a complete success, this first time running on Windows Server. And I wanted to take a moment to thank everybody for watching the presentation today. And feel free to reach out to me on Twitter or at GitHub if you've got any questions or comments. Thanks everybody.