Manage Azure Stack HCI and Windows Server clusters using PowerShell
Applies to: Azure Stack HCI, versions 22H2 and 21H2; Windows Server 2022, Windows Server 2019
Important
Azure Stack HCI is now part of Azure Local. Product documentation renaming is in progress. However, older versions of Azure Stack HCI, for example 22H2 will continue to reference Azure Stack HCI and won't reflect the name change. Learn more.
Windows PowerShell can be used to manage resources and configure features on your Azure Stack HCI and Windows Server clusters.
You manage clusters from a remote computer, rather than on a host server in a cluster. This remote computer is called the management computer.
Note
When running PowerShell commands from a management computer, include the -Name
or -Cluster
parameter with the name of the cluster you are managing. In addition, you will need to specify the fully qualified domain name (FQDN) when using the -ComputerName
parameter for a server node.
For the complete reference documentation for managing clusters using PowerShell, see the FailoverCluster reference.
Using Windows PowerShell
Windows PowerShell is used to perform all the tasks in this article. It's recommended that you pin the app to your taskbar for convenience.
If the following cmdlets aren't available in your PowerShell session, you may need to add the Failover Cluster
Module for Windows PowerShell Feature, using the following PowerShell cmd: Add-WindowsFeature RSAT-Clustering-PowerShell
.
Note
Starting with Windows 10 October 2018 Update, RSAT is included as a set of "Features on Demand" right from Windows 10. For versions older than Windows 10 22H2, simply go to Settings > Apps > Apps & features > Optional features > Add a feature > RSAT: Failover Clustering Tools, and select Install. For Windows 10 22H2 and Windows 11, go to Settings > System > Optional features > Add a feature > RSAT: Failover Clustering Tools, and select Add. To see operation progress, click the Back button to view status on the "Manage optional features" page. The added feature will persist across Windows 10 version upgrades.
View cluster settings and resources
Gets information about a cluster named Cluster1:
Get-Cluster -Name Cluster1
Gets information about one or more nodes, or servers, in Cluster1:
Get-ClusterNode -Cluster Cluster1
To see which Windows features are installed on a cluster node, use the Get-WindowsFeature
cmdlet. For example:
Get-WindowsFeature -ComputerName Server1
To see network adapters and their properties such as Name, IPv4 addresses, and VLAN ID:
Get-NetAdapter -CimSession Server1 | Where Status -Eq "Up" | Sort InterfaceAlias | Format-Table Name, InterfaceDescription, Status, LinkSpeed, VLANID, MacAddress
To see Hyper-V virtual switches and how physical network adapters are teamed:
Get-VMSwitch -ComputerName Server1
To see host virtual network adapters:
Get-VMNetworkAdapter -ComputerName Server1
To see whether Storage Spaces Direct is enabled:
Get-CimSession -ComputerName Server1 | Get-ClusterStorageSpacesDirect
Start or stop a cluster
Use the Start-Cluster
and Stop-Cluster
cmdlets to add or remove a server node for your cluster. For more examples and usage information, see the Start-Cluster and Stop-Cluster reference documentation.
Starts the Cluster service on all server nodes of the cluster on which it isn't yet started:
Start-Cluster -Name Cluster1
This example stops the Cluster service on all nodes in the cluster named Cluster1, which will stop all services and applications configured in the cluster:
Stop-Cluster -Name Cluster1
Add or remove a server
Use the Add-ClusterNode
and Remove-ClusterNode
cmdlets to add or remove a server node for your cluster. For more examples and usage information, see the Add-ClusterNode and Remove-ClusterNode reference documentation.
This example adds a server named Node4 to a cluster named Cluster1. Make sure the server is running and connected to the cluster network first.
Add-ClusterNode -Cluster Cluster1 -Name Node4
This example removes the node named node4 from cluster Cluster1:
Remove-ClusterNode -Cluster Cluster1 -Name Node4
Note
If the node has been added to a single server, see these manual steps to reconfigure Storage Spaces Direct.
Set up the cluster witness
Use the Set-ClusterQuorum
cmdlet to set quorum witness options for the cluster. For more examples and usage information, see the Set-ClusterQuorum reference documentation.
This example changes the quorum configuration to use a cloud witness on cluster Cluster1:
Set-ClusterQuorum -Cluster Cluster1 -CloudWitness
This example changes the quorum configuration to Node and File Share Majority on the cluster Cluster1, using the disk resource at \fileserver\fsw for the file share witness.
Set-ClusterQuorum -Cluster Cluster1 -NodeAndFileShareMajority \\fileserver\fsw
Enable Storage Spaces Direct
Use the Enable-ClusterStorageSpacesDirect
cmdlet to enable Storage Spaces Direct on the cluster. For more examples and usage information, see the Enable-ClusterStorageSpacesDirect reference documentation.
This example enables Storage Spaces Direct on Server1:
Enable-ClusterStorageSpacesDirect -CimSession Cluster1
Configure a Hyper-V host
Use the Set-VMHost
cmdlet to configure various Hyper-V host settings, such as VHD and VM paths, live migrations, storage migrations, authentication, NUMA spanning and others. For more examples and usage information, see the Enable-ClusterStorageSpacesDirect reference documentation.
This example specifies new default locations for virtual hard disks and VMs on host server Server1:
Set-VMHost -ComputerName Server1 -VirtualHardDiskPath "C:\Hyper-V\Virtual Hard Disks" -VirtualMachinePath "C:\Hyper-V\Configuration Files"
This example configures host server Server1 to allow 10 simultaneous live migrations and storage migrations:
Set-VMHost -ComputerName Server1 -MaximumVirtualMachineMigrations 10 -MaximumStorageMigrations 10
This example configures host server Server1 to use Kerberos to authenticate incoming live migrations:
Set-VMHost -ComputerName Server1 -VirtualMachineMigrationAuthenticationType Kerberos
Remove a cluster
Before you remove (destroy) a cluster, you must unregister it from Azure first. For more information, see Unregister Azure Stack HCI.
Use the Remove-ClusterResource
cmdlet to remove one or all resources on a cluster. For more examples and usage information, see the Remove-ClusterResource reference documentation.
Note
You will need to temporarily enable Credential Security Service Provider (CredSSP) authentication to remove a cluster. For more information, see Enable-WSManCredSSP.
The following example removes cluster resources by name on cluster Cluster1:
Remove-ClusterResource -Cluster Cluster1 -Name "Cluster Disk 4"
This example removes cluster Cluster1 entirely using the Remove-Cluster
cmdlet:
Remove-Cluster -Cluster Cluster1
Next steps
- You should validate the cluster afterwards after making changes. For more information, see Validate an Azure Stack HCI cluster.
- Learn how to manage your clusters using Windows Admin Center. See Manage clusters on Azure Stack HCI using Windows Admin Center.