Tag: Windows Server

Install or Update PowerShell 6 on Windows 10

How to Install and Update PowerShell 6

Today Windows 10 and Windows Server 2019 ship with Windows PowerShell 5.1 as the default version. PowerShell Core 6 is a new edition of PowerShell that is cross-platform (Windows, macOS, and Linux), open-source, and built for heterogeneous environments and the hybrid cloud. PowerShell 6 today is a side by side version next to Windows PowerShell 5.1. That means on Windows you cannot just upgrade to PowerShell 6, you will need to install it, same as on Linux and macOS. This blog post just shows you how simple you can install PowerShell 6 or update PowerShell 6, if you have already installed it, on Windows 10, Windows Server 2019 or Linux.

Of course you can find great documentation out there on Microsoft Docs. However, Steve Lee (Microsoft Principal Software Engineer Manager in the PowerShell Team) shared some one-liner, which help you easily install and update PowerShell 6.

Install PowerShell Core 6

Before showing you the one-liner option to install PowerShell 6, I want to share with you the documentation to install PowerShell Core 6 on different operating systems like Windows, macOS and Linux.

One-liner to install or update PowerShell 6 on Windows 10

Install or Update PowerShell 6 on Windows 10

You can use this single command in Windows PowerShell to install PowerShell 6.

There are additional parameters to for example install daily builds of the latest PowerShell previews.

-Destination
The destination path to install PowerShell Core to.

-Daily
Install PowerShell Core from the daily build.
Note that the ‘PackageManagement’ module is required to install a daily package.

-Preview
Install latest preview.

-UseMSI
Use MSI installer.

-Quiet
Quiet command for the MSI installer.

-DoNotOverwrite
Do not overwrite the destination folder if it already exists.

-AddToPath
On Windows, add the absolute destination path to the ‘User’ scope environment variable ‘Path’;
On Linux, make the symlink ‘/usr/bin/pwsh’ points to “$Destination/pwsh”;
On MacOS, make the symlink ‘/usr/local/bin/pwsh’ points to “$Destination/pwsh”.

For more about installing PowerShell 6 on Windows, check out the Microsoft Docs.

One-liner to install or update PowerShell 6 on Linux

Install or Update PowerShell 6 on Linux

You can use this as a single command to install PowerShell 6 on Linux

Depending on your distro you are using, this will register Microsoft’s pkg repos and install that package (deb or rpm).

For more about installing PowerShell 6 on Linux, or if you want to install PowerShell Core 6 on macOS, check out the Microsoft Docs.

After Installing

After you have installed PowerShell 6, also make sure to update PowerShellGet and the PackageManagement module.

By the way, PowerShell 6 is also used in the PowerShell version of Azure Cloud Shell. You can of course also install the Azure PowerShell module in PowerShell 6.



Windows Server 2019

Which Windows Server 2019 Installation Option should I choose?

Windows Server 2019 will bring several installation options and tuning options for virtual machines, physical servers as well as container images. In this blog post I want to give an overview about the different installation options of Windows Server 2019.

Installation Options for Windows Server 2019 Physical Servers and Virtual Machines

As always, you can install Windows Server 2019 in virtual machines or directly on physical hardware, depending on your needs and requirements. For example you can use Windows Server 2019 as physical hosts for your Hyper-V virtualization server, Container hosts, Hyper-Converged Infrastructure using Hyper-V and Storage Spaces Direct, or as an application server. In virtual machines you can obviously use Windows Server 2019 as an application platform, infrastructure roles or container host. And of course you could also use it as Hyper-V host inside a virtual machine, leveraging the Nested Virtualization feature.

Installation OptionScenario
Windows Server CoreServer Core is the best installation option for production use and with Windows Admin Center remote management is highly improved.
Windows Server Core with Server Core App Compatibility FODWorkloads, and some troubleshooting scenarios, if Server Core doesn’t meet all your compatibility requirements. You can add an optional package to get past these issues. Try the Server Core App Compatibility Feature on Demand (FOD).
Windows Server with Desktop ExperienceWindows Server with Desktop Experience is still an option and still meets like previous releases. However, it is significantly larger than Server Core. This includes larger disk usage, more time to copy and deploy and larger attack surface. However, if Windows Server Core with App Compatibility does not support the App, Scenario or Administrators still need the UI, this is the option to install.

Installation Options for Windows Server 2019 Container Images

For containers Microsoft offers three types of container images with different sizes and different application compatibility levels. You can use the Nano Server and Windows Server Core container image you already know from Windows Server 2016, or you can leverage the new Windows container image, which adds additional application compatibility to beyond the Server Core image.

NameSizeScenario
Nano Server~200MBNano Server is great for new applications for example for .NET Core applications. This image is the smallest of the Microsoft Windows container images. It is lightweight and fast.
Windows Server Core~3.3GBThe Windows Server Core image offers the same application compatibility like the Windows Server 2019 Core Installation option.
Windows~8.0GBThe Windows container image, Microsoft is offering a new option for applications who need more components which are not included in Windows Server Core, like DirectX or proofing support.

Installation Options for Windows Server 2019 in Microsoft Azure

Of course Azure is a great place to run Windows Server. You can run Windows Server 2019 as Azure VMs with the same installation options you have available if you download it. You can also run Windows Server Containers in multiple Azure services.

And of course Windows Server is used in the Azure back-end and powers a large amount of services.

What do you think? Let me know in the comments!



Microsoft NetWork 9

Speaking at Microsoft NetWork 9 in Neum

Today, I am happy to announce that I will be speaking at the Microsoft NetWork 9 conference in Bosnia again. The Microsoft NetWork 9 conference will take place from March 27-29 in Neum, Bosnia. I will present two sessions focusing on the Microsoft Hybrid Cloud and Azure. This will be my second time at this conference, after speaking in 2016.

Mastering Azure using Cloud Shell!

Azure can be managed in many different way. Learn your command line options like Azure PowerShell, Azure CLI and Cloud Shell to be more efficient in managing your Azure infrastructure. Become a hero on the shell to manage the cloud!

Windows Server 2019 - Next level of Hybrid Cloud

Join this session for the best of Windows Server 2019, about the new innovation and improvements of Windows Server and Windows Admin Center. Learn how Microsoft enhances the SDDC feature like Hyper-V, Storage and Networking and get the most out of the new Azure Hybrid Cloud Integration and Container features. You’ll get an overview about the new, exciting improvements that are in Windows Server and how they’ll improve your day-to-day job.

I remember it is great event, with a great community and a lot of interesting sessions. I am looking forward to the event and hope to see you at Microsoft NetWork 9!

If you want to learn more about Windows Server 2019 and Azure CloudShell, check out my blog.



Cluster Functional Level and Cluster Upgrade Version

Learn about Windows Server Cluster Functional Levels

A couple of weeks ago, I released a blog post about Hyper-V VM Configuration versions to give an overview about the version history of Hyper-V virtual machines. After that I had the chance to work with John Marlin (Microsoft Senior Program Manager High Availability and Storage) on a similar list of Windows Server Cluster Functional Levels.

Why Cluster Functional Levels are important

With Windows Server 2016, Microsoft introduced a new feature called Cluster OS Rolling Upgrade or Cluster Rolling Upgrade. This feature allows you to upgrade the operating system of the cluster nodes to a new version, without stopping the cluster. With mixed-OS mode, you can have for example 2012 R2 and 2016 nodes in the same cluster. Keep in mind that this should only be temporary, while you are upgrading the cluster. You can basically upgrade node by node, and after all nodes are upgraded, you then upgrade the Cluster functional Level to the latest version.

List of Windows Server Cluster Functional Levels

Since the feature Cluster OS Rolling Upgrade was first introduced with Windows Server 2016, you never really knew about Cluster Functional Levels before. However, it already existed since Windows Server NT4.

Windows Server VersionCluster Functional Level
Windows Server 201911
Windows Server RS410.3
Windows Server RS310.2
Windows Server 20169
Windows Server 2012 R28
Windows Server 20127
Windows Server 2008 R26
Windows Server 20085
Windows Server 2003 R24
Windows Server 20033
Windows Server 20002
Windows Server NT41

Tips and PowerShell

If you want to know more about Cluster OS Rolling Upgrade, you can check out the Microsoft Docs. Together with John, I created a quick list of some tips for you, and some of the important PowerShell cmdlets.

To check which Cluster Functional Levels your cluster is running on, you can use the following PowerShell cmdlet:

If you have upgraded all nodes in the cluster, you can use the Update-ClusterFunctionalLevel to update the Cluster Functional Level. Also make sure that you upgrade the workloads running in that cluster, for example upgrade the Hyper-V Configuration Version or in a Storage Spaces Direct Cluster, the Storage Pool version (Update-StoragePool).

In Windows Server 2019 the Clustering team introduced a new PowerShell cmdlet to check how many nodes of the cluster are running on which level. Get-ClusterNodeSupportedVersion helps you to identify the Cluster Functional Level and the Cluster Upgrade Version.

Cluster Functional Level Get-ClusterNodeSupportedVersion

This means that the functional level is 11 (Windows 2019).  The Upgrade version column is what you can upgrade to/with, meaning 11.1 or Windows 2019 only.

Cluster Functional Level and Cluster Upgrade Version

This means your Cluster Functional Level is 10.  Meaning you can add basically anything 10.x (2016, RS3, RS4) and 11 (2019) to it.

If you are running System Center Virtual Machine Manager, the Cluster OS rolling upgrade, can be fully automated as well. Check out the Microsoft Docs for Perform a rolling upgrade of a Hyper-V host cluster to Windows Server 2016 in VMM.

To find out more about information Cluster operating system rolling upgrade, like how-to, requirements and limitations, check out the Microsoft Windows Server Docs page.



Veeam Vanguard 2019

Veeam Vanguard 2019

Beginning of this week I got some fantastic news. I was awarded with my third Veeam Vanguard award. I was on of the first Veeam Vanguards in 2015 and was awarded directly after that in 2016. I am proud to again receive the Veeam Vanguard Award in 2019.

A Veeam Vanguard represents the Veeam brand to the highest level in many of the different technology communities in which Veeam engages. These individuals are chosen for their acumen, engagement and style in their activities on and offline.

I am looking forward to community in this virtualization and cloud journey. I also want to thank Veeam, it is an honor to be part of the Veeam Vanguard community again.



Updated PowerShellGet and PackageManagment

Update PowerShellGet and PackageManagement

Since I am just setting up a new work machine, I wanted to share some information how you can update PowerShellGet and PackageManagement to the latest version. This will give you the usual bug fixes and performance enhancements. Since you don’t get the latest version in Windows PowerShell nor PowerShell Core, you will need to update it manually.

PowerShellGet is a PowerShell module with commands for discovering, installing, updating and publishing the PowerShell artifacts like Modules, DSC Resources, Role Capabilities and Scripts. For example you use PowerShellGet to install the Azure PowerShell module, or other modules.

PowerShellGet module is also integrated with the PackageManagement module as a provider, users can also use the PowerShell PackageManagement cmdlets for discovering, installing and updating the PowerShell artifacts like Modules and Scripts.

(source: GitHub)

How to update PowerShellGet and PackageManagement

Updating to the latest version of PowerShellGet and the PackageManagement module is simple. Since both modules are part of the PowerShell Gallery, you can update them using a couple of simple commands.

You can find both modules in the PowerShell Gallery:

First lets check which versions of the modules you have available. If you use Update-Module, it will automatically load PowerShellGet and PackageManagement and list them as loaded PowerShell modules. Of course you can also use Get-Module -ListAvailable.

PowerShell Modules PowerShellGet and PackageManagement

As you can see, In my default installation, I got PowerShellGet version 1.6.7 and PackageManagement 1.1.7.2. If you have a look at PSGallery, you will see that these are pretty old versions and that there are newer available.

To get the latest version from PowerShell Gallery, you should first install the latest Nuget provider. You will need to run PowerShell as an Administrator for all  the following commands.

If you run PowerShell 5.0 or newer, you can install the latest PowerShellGet using the following command. PowerShell 5.0 is included in Windows 10, Windows Server 2016, Windows Server 2019, any system with WMF 5.0 and 5.1 or a system running PowerShell 6.

Two quick tips, first of, you will need to set the execution policy to RemoteSigned to allow the new module to run. Secondly in some cases you will need to use the -AllowClobber parameter to install the updated version of the module.

You can then use Update-Module to get newer versions:

Updated PowerShellGet and PackageManagment

After that you will see the latest versions of PowerShellGet and PackageMangement available

If you run older versions of PowerShell you can check out the full documention on the PowerShell Docs. I hope this blog post helps you to update PowerShellGet and benefit from the latest versions. If you have any questions, please let me know in the comments.



Microsoft Ignite The Tour

Speaking at Microsoft Ignite The Tour 2018-2019 in London and Amsterdam

After joining Microsoft a couple of days ago, I am happy to announce my first speaking engagements under Microsoft. As mentioned in my blog before, I will be joining Microsoft Ignite The Tour 2018-2019 in London and Amsterdam. As part of our Cloud Advocates team, I will be speaking in two sessions in the “Building and maintaining your Azure hybrid environment” learning path.

This learning path is designed for Microsoft Ignite The Tour and gives attendees an overview about the steps to build, connect, secure, protect and manage a Azure hybrid cloud environment.

Sessions at Microsoft Ignite The Tour

HYB10 - Planning and implementing hybrid network connectivity

Once your organization has decided to implement a hybrid model, you need to start figuring out how to ensure that communication between your on-premises environment and your hybrid workloads is both secure and reliable. You also need to ensure that those workloads are protected from internal and external network threats. In this module, you’ll learn how to assess your organization’s on-prem network infrastructure, how to plan and then implement an appropriate networking design for Azure. You’ll learn how to implement appropriate Azure virtual network technologies, including securing connectivity between on-premises and Azure using VPNs and ExpressRoute as well as how to strategically deploy firewalls, network security groups and marketplace appliances to protect those resources and workloads.

HYB20 - Securing your Azure environment

With Cloud resources now connected with our datacenter, secure administrative access to critical workloads needs to be configured appropriately. It’s also important from an organizational and compliance perspective to ensure that workloads have a security configuration aligned with industry best practice. In this module, you’ll learn how to improve the security of privileged accounts used to manage Azure resources, manage software updates for both on-premises and cloud hosted virtual machines, and how to get the most out of Azure Security Center for assessing and remediating security configuration issues in a hybrid environment.

I am also happy to talk with you in the expo hall about the latest and greatest features in Azure, Azure Stack and Windows Server. as well as learning from your experience. So join me and the team at Microsoft Ignite the Tour.

If you want to join, check out the Microsoft Ignite The Tour 2018-2019 website. London is already sold out, however you can join the waitlist. For Amsterdam, there are still seats available.

I hope to see you there!