2
2
description : Use this topic to help manage Windows and Windows Server technologies with Windows PowerShell.
3
3
external help file : Microsoft.FailoverClusters.PowerShell.dll-Help.xml
4
4
Module Name : FailoverClusters
5
- ms.date : 11/23/2022
5
+ ms.date : 07/18/2025
6
6
online version : https://learn.microsoft.com/powershell/module/failoverclusters/update-clusterfunctionallevel?view=windowsserver2025-ps&wt.mc_id=ps-gethelp
7
7
schema : 2.0.0
8
8
title : Update-ClusterFunctionalLevel
@@ -26,34 +26,18 @@ The `Update-ClusterFunctionalLevel` cmdlet updates the functional level of a mix
26
26
cluster. You can update the cluster after all nodes have been updated.
27
27
28
28
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.
31
30
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.
35
34
36
35
We recommend that you upgrade all nodes in the cluster within a month. We don't recommend using a
37
36
mixed-version cluster permanently.
38
37
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.
42
-
43
- First, drain one cluster node by specifying the ** Drain** parameter of the ` Suspend-ClusterNode `
44
- cmdlet. This cmdlet causes all virtual machines to live-migrate to one of the other hosts.
45
-
46
- Next, remove the host from the cluster by using the ` Remove-ClusterNode ` cmdlet.
47
-
48
- Next, install a new version of the operating system. Don't perform an upgrade or in-place
49
- installation.
50
-
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 ` .
53
-
54
- Finally, add the node into the cluster by using the ` Add-ClusterNode ` cmdlet.
55
-
56
- Repeat these steps for each node of the cluster.
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.
57
41
58
42
## EXAMPLES
59
43
@@ -64,7 +48,7 @@ Update-ClusterFunctionalLevel -WhatIf
64
48
```
65
49
66
50
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.
51
+ ** WhatIf** parameter, the command doesn't perform the update.
68
52
69
53
### Example 2: Update a cluster functional level
70
54
@@ -75,12 +59,39 @@ Update-ClusterFunctionalLevel -Cluster "cluster_17"
75
59
This command updates the cluster functional level of the cluster named ` cluster_17 ` . All of the
76
60
nodes of this cluster must already be updated before you run this command.
77
61
62
+ ### Example 3: Rolling OS upgrade of a cluster
63
+
64
+ First, drain one cluster node by specifying the ** Drain** parameter of the ` Suspend-ClusterNode `
65
+ cmdlet. This cmdlet causes all virtual machines to live-migrate to one of the other hosts.
66
+
67
+ Next, remove the host from the cluster by using the ` Remove-ClusterNode ` cmdlet.
68
+
69
+ Next, perform an in-place upgrade to install the new version of the OS. Note that a cluster can only
70
+ be upgraded one OS version at a time, for example:
71
+
72
+ - Windows Server 2012 R2 to Windows Server 2016
73
+ - Windows Server 2016 to Windows Server 2019
74
+ - Windows Server 2019 to Windows Server 2022
75
+ - Windows Server 2022 to Windows Server 2025
76
+
77
+ Next, add the ** Hyper-V** role and the ** Failover Clustering** feature, if not already installed, by
78
+ running the following command:
79
+
80
+ ``` powershell
81
+ Install-WindowsFeature -Name Hyper-V -IncludeManagementTools
82
+ Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
83
+ ```
84
+
85
+ Finally, add the node into the cluster by using the ` Add-ClusterNode ` cmdlet.
86
+
87
+ Repeat these steps for each node in the cluster.
88
+
78
89
## PARAMETERS
79
90
80
91
### -Cluster
81
92
82
93
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.
94
+ ` . ` or it's omitted, then the cmdlet runs on the local cluster.
84
95
85
96
``` yaml
86
97
Type : String
@@ -164,13 +175,13 @@ This cmdlet returns a **Cluster**. This cmdlet updates the functional level of t
164
175
165
176
## NOTES
166
177
167
- * This cmdlet performs a one-time, one-way transformation of the cluster functional level. You
168
- cannot lower this level.
178
+ Once you update the cluster functional level using this cmdlet, the change is permanent and can't be
179
+ reverted to a previous level.
169
180
170
181
## RELATED LINKS
171
182
172
- [Add-ClusterNode](./Add-ClusterNode .md)
183
+ [Add-ClusterNode](add-clusternode .md)
173
184
174
- [Suspend-ClusterNode](./Suspend-ClusterNode .md)
185
+ [Suspend-ClusterNode](suspend-clusternode .md)
175
186
176
- [Remove-ClusterNode](./Remove-ClusterNode .md)
187
+ [Remove-ClusterNode](remove-clusternode .md)
0 commit comments