From Stupid IT
Jump to: navigation, search


Misc Useful Commands

C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
run "shell:startup" or "shell:common startup"


Monitoring VM Disk Queues - HyperV

Gives detailed look at each individual VM, despite what other VMs are doing

perfmon > Hyper-V Virtual Storage Device > Queue Length

Add instances separately. Can connect to remote host & add those counters, as well

Cluster Disk Counters > Read Queue Length / Write Queue Length

Gives good total look at Cluster Storage

Cluster CSVFS > Current Read Queue Length / Current Write Queue Length / Volume Pause Counter - Network

Hyper-V Virtual Storage Device(*) / Queue Length

Monitoring Active Migration Jobs (VM Storage)

get-wmiobject -namespace root\virtualization\v2 -class msvm_MigrationJob | ft Name,JobStatus,PercentComplete,StatusDescriptions

Changing Failover Cluster Subnet Mask

NO DOWNTIME :: This will follow through a "hot" change
Time to make changes :: Less than 5 minutes


  • It is best to perform this task from the node hosting the Cluster at this time.
  • While not necessary to do it in this order, doing the Cluster's subnet first doesn't hurt.
  • If you have multiple DCs, make sure they are split across the cluster nodes. If you only have one, migrate it to the cluster node currently hosting the Cluster object.

Will return all current resources

get-clusterresource -name "cluster ip address" | get-clusterparameter

Will return the details of the Cluster's IP Address resource. Use the Name column to reference in next command.

get-clusterresource -name "cluster ip address" | get-clusterparameter -name SubnetMask
get-clusterresource -name "cluster ip address" | set-clusterparameter -name SubnetMask -value

Changes will be stored, but will not take effect until the cluster IP address is taken offline then online again.


Verify that the "cluster name" and "cluster ip address" are both Online

stop-clusterresource -name "cluster ip address"

This will stop the Cluster IP Address, and also the Cluster Name since it is dependent

start-clusterresource -name "cluster ip address"
start-clusterresource -name "cluster name"

Verify that both came back up without issue. Can use get-clusterresource to verify, also.

get-clusterresource -name "cluster ip address" | get-clusterparameter

Verify that the subnet mask is now what it should be.

At this point, we will be changing the subnet mask on the respective NICs on the HyperV Hosts. You can do this simultaneously, if you wish. Doing this hot will throw errors in the Cluster manager. Any hosts that you change that are not currently hosting the Cluster object will become "isolated", and the nodes' respective Clustered Roles (eg, VMs) will become "Unmonitored" - during this stage, everything will continue to run, and the node will start to rejoin the cluster.

Eventually, everything will show up Green again, and you can continue on your way.

If you choose to change the IP of a specific node at this time, as well, then make sure the DNS record for the node's name is also updated. The cluster won't break, but it'll throw the same issues and errors until the DNS name for the specific node is updated to the proper IP address. Log into the DNS server and queue the changes for quickest results.