Skip to content

[AutoPublish] main to live - 07/19 10:33 PDT | 07/19 23:03 IST #4032

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 19, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: Use this topic to help manage Windows and Windows Server technologies with Windows PowerShell.
external help file: Microsoft.FailoverClusters.PowerShell.dll-Help.xml
Module Name: FailoverClusters
ms.date: 11/23/2022
ms.date: 07/18/2025
online version: https://learn.microsoft.com/powershell/module/failoverclusters/update-clusterfunctionallevel?view=windowsserver2025-ps&wt.mc_id=ps-gethelp
schema: 2.0.0
title: Update-ClusterFunctionalLevel
Expand All @@ -26,34 +26,18 @@ The `Update-ClusterFunctionalLevel` cmdlet updates the functional level of a mix
cluster. You can update the cluster after all nodes have been updated.

Starting with Windows Server 2016, you can add a node that runs a more recent version of the Windows
operating system into a cluster of nodes that run a previous version of the Windows operating
system. To add a cluster node, use the `Add-ClusterNode` cmdlet.
operating system (OS) into a cluster of nodes that run a previous version of the Windows OS.

After you add a node that runs a different version of the Windows operating system, the cluster
becomes a mixed-version cluster. You can implement a mixed-version cluster to continue to run while
you upgrade the operating system on each node in the cluster.
After you add a node that runs a different version of the Windows OS, the cluster becomes a
mixed-version cluster. You can implement a mixed-version cluster to continue to run while you
upgrade the OS on each node in the cluster.

We recommend that you upgrade all nodes in the cluster within a month. We don't recommend using a
mixed-version cluster permanently.

You can use this cmdlet to support a rolling operating system upgrade for a cluster. If you use
cluster that runs Hyper-V in which all the nodes run Windows Server 2012 R2, you can upgrade the
nodes of that cluster without downtime for your virtual machines.

First, drain one cluster node by specifying the **Drain** parameter of the `Suspend-ClusterNode`
cmdlet. This cmdlet causes all virtual machines to live-migrate to one of the other hosts.

Next, remove the host from the cluster by using the `Remove-ClusterNode` cmdlet.

Next, install a new version of the operating system. Don't perform an upgrade or in-place
installation.

Next, add the Hyper-V role and the **Failover Clustering** feature by using the
`Install-WindowsFeature` cmdlet. For more information, type `Get-Help Install-WindowsFeature`.

Finally, add the node into the cluster by using the `Add-ClusterNode` cmdlet.

Repeat these steps for each node of the cluster.
You can use this cmdlet to support a rolling OS upgrade for a cluster. If you use a cluster that
runs Hyper-V in which all the nodes run Windows Server 2012 R2, you can upgrade the nodes of that
cluster without downtime for your virtual machines.

## EXAMPLES

Expand All @@ -64,7 +48,7 @@ Update-ClusterFunctionalLevel -WhatIf
```

This command tests whether an update would finish successfully. Because the command includes the
**WhatIf** common parameter, the command doesn't perform the update.
**WhatIf** parameter, the command doesn't perform the update.

### Example 2: Update a cluster functional level

Expand All @@ -75,12 +59,39 @@ Update-ClusterFunctionalLevel -Cluster "cluster_17"
This command updates the cluster functional level of the cluster named `cluster_17`. All of the
nodes of this cluster must already be updated before you run this command.

### Example 3: Rolling OS upgrade of a cluster

First, drain one cluster node by specifying the **Drain** parameter of the `Suspend-ClusterNode`
cmdlet. This cmdlet causes all virtual machines to live-migrate to one of the other hosts.

Next, remove the host from the cluster by using the `Remove-ClusterNode` cmdlet.

Next, perform an in-place upgrade to install the new version of the OS. Note that a cluster can only
be upgraded one OS version at a time, for example:

- Windows Server 2012 R2 to Windows Server 2016
- Windows Server 2016 to Windows Server 2019
- Windows Server 2019 to Windows Server 2022
- Windows Server 2022 to Windows Server 2025

Next, add the **Hyper-V** role and the **Failover Clustering** feature, if not already installed, by
running the following command:

```powershell
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
```

Finally, add the node into the cluster by using the `Add-ClusterNode` cmdlet.

Repeat these steps for each node in the cluster.

## PARAMETERS

### -Cluster

Specifies the name of the cluster on which to run this cmdlet. If the input for this parameter is
`.` or it is omitted, then the cmdlet runs on the local cluster.
`.` or it's omitted, then the cmdlet runs on the local cluster.

```yaml
Type: String
Expand Down Expand Up @@ -164,13 +175,13 @@ This cmdlet returns a **Cluster**. This cmdlet updates the functional level of t

## NOTES

* This cmdlet performs a one-time, one-way transformation of the cluster functional level. You
cannot lower this level.
Once you update the cluster functional level using this cmdlet, the change is permanent and can't be
reverted to a previous level.

## RELATED LINKS

[Add-ClusterNode](./Add-ClusterNode.md)
[Add-ClusterNode](add-clusternode.md)

[Suspend-ClusterNode](./Suspend-ClusterNode.md)
[Suspend-ClusterNode](suspend-clusternode.md)

[Remove-ClusterNode](./Remove-ClusterNode.md)
[Remove-ClusterNode](remove-clusternode.md)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy