Skip to content

Commit fd19ad7

Browse files
authored
Merge pull request #4029 from Xelu86/updateclusfunclvl
Update to Update-ClusterFunctionalLevel
2 parents 5852316 + c5becbe commit fd19ad7

File tree

1 file changed

+30
-21
lines changed

1 file changed

+30
-21
lines changed

docset/winserver2025-ps/FailoverClusters/Update-ClusterFunctionalLevel.md

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
description: Use this topic to help manage Windows and Windows Server technologies with Windows PowerShell.
33
external help file: Microsoft.FailoverClusters.PowerShell.dll-Help.xml
44
Module Name: FailoverClusters
5-
ms.date: 11/23/2022
5+
ms.date: 07/18/2025
66
online version: https://learn.microsoft.com/powershell/module/failoverclusters/update-clusterfunctionallevel?view=windowsserver2025-ps&wt.mc_id=ps-gethelp
77
schema: 2.0.0
88
title: Update-ClusterFunctionalLevel
@@ -26,34 +26,43 @@ The `Update-ClusterFunctionalLevel` cmdlet updates the functional level of a mix
2626
cluster. You can update the cluster after all nodes have been updated.
2727

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

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

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

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

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

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

48-
Next, install a new version of the operating system. Don't perform an upgrade or in-place
49-
installation.
47+
Next, perform an in-place upgrade to install the new version of the OS. Note that a cluster can only
48+
be upgraded one OS version at a time, for example:
5049

51-
Next, add the Hyper-V role and the **Failover Clustering** feature by using the
52-
`Install-WindowsFeature` cmdlet. For more information, type `Get-Help Install-WindowsFeature`.
50+
- Windows Server 2012 R2 to Windows Server 2016
51+
- Windows Server 2016 to Windows Server 2019
52+
- Windows Server 2019 to Windows Server 2022
53+
- Windows Server 2022 to Windows Server 2025
54+
55+
Next, add the **Hyper-V** role and the **Failover Clustering** feature, if not already installed, by
56+
running the following command:
57+
58+
```powershell
59+
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools
60+
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
61+
```
5362

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

56-
Repeat these steps for each node of the cluster.
65+
Repeat these steps for each node in the cluster.
5766

5867
## EXAMPLES
5968

@@ -64,7 +73,7 @@ Update-ClusterFunctionalLevel -WhatIf
6473
```
6574

6675
This command tests whether an update would finish successfully. Because the command includes the
67-
**WhatIf** common parameter, the command doesn't perform the update.
76+
**WhatIf** parameter, the command doesn't perform the update.
6877

6978
### Example 2: Update a cluster functional level
7079

@@ -80,7 +89,7 @@ nodes of this cluster must already be updated before you run this command.
8089
### -Cluster
8190

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

8594
```yaml
8695
Type: String
@@ -164,13 +173,13 @@ This cmdlet returns a **Cluster**. This cmdlet updates the functional level of t
164173
165174
## NOTES
166175
167-
* This cmdlet performs a one-time, one-way transformation of the cluster functional level. You
168-
cannot lower this level.
176+
Once you update the cluster functional level using this cmdlet, the change is permanent and can't be
177+
reverted to a previous level.
169178
170179
## RELATED LINKS
171180
172-
[Add-ClusterNode](./Add-ClusterNode.md)
181+
[Add-ClusterNode](add-clusternode.md)
173182
174-
[Suspend-ClusterNode](./Suspend-ClusterNode.md)
183+
[Suspend-ClusterNode](suspend-clusternode.md)
175184
176-
[Remove-ClusterNode](./Remove-ClusterNode.md)
185+
[Remove-ClusterNode](remove-clusternode.md)

0 commit comments

Comments
 (0)