Cry about...
Windows Hyper-V-Server

PowerShell - the real Hyper-V-Server toolbox


To do almost anything of note on a Hyper-V-Server you need to use PowerShell.

PowerShell is started from the command line simply by running powershell:

C:\Users\Administrator>powershell

Windows PowerShell

Copyright (C) 2012 Microsoft Corporation. All rights reserved.

 

PS C:\Users\Administrator>

You can perform some basic administration using sconfig, but powershell is what you need to use in order to create and administer virtual machines.

Contents:

PowerShell Snap-Ins and Modules

Whilst it is a bit simplistic, you can think of PowerShell as being a toolbox which in turn contains a number of toolkits. Each toolkit must be loaded before it can be used. These toolkits can be either "snap-ins" or "modules".

PowerShell Modules

To see what modules are available use Get-Module -ListAvailable thus:

PS C:\Users\Administrator> Get-Module -ListAvailable

PowerShell commands are not case sensitive, so you could just as easily have typed "get-module" (i.e. in all lower case).

To add a snap-in to make it available to the current session use Import-Module thus:

PS C:\Users\Administrator> Import-Module Hyper-V

Import-Module can be abbreviated to simply ipmo, so the following is equivalent to the above:

PS C:\Users\Administrator> ipmo Hyper-V

To see which modules have already been imported into the session use Get-Module (or simply "gmo"):

PS C:\Users\Administrator> Get-Module

ModuleType Name                              ExportedCommands

---------- ----                              ----------------

Binary     Hyper-V                           {Add-VMDvdDrive, Add-VMFibreC...

Manifest   Microsoft.PowerShell.Management   {Add-Computer, Add-Content, C...

Manifest   Microsoft.PowerShell.Utility      {Add-Member, Add-Type, Clear-...

 

PS C:\Users\Administrator>

The above also shows the three modules pre-loaded on Windows Hyper-V server.

On Hyper-V server (2012) the following modules are pre-installed and available to be imported:

Module
BestPractices
BitsTransfer
CimCmdlets
DirectAccessClientComponents
Dism
DnsClient
Hyper-V
International
iSCSI
IcsciTarget
Kds
Microsoft.PowerShell.Diagnostics
Microsoft.PowerShell.Host
Microsoft.PowerShell.Management
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
Microsoft.WSMan.Management
MsDtc
NetAdapter
NetConnection
NetLbfo
NetQos
NetSecurity
NetSecurityTeam
NetTCPIP
NetWNV
NetworkConnectivityStatus
NetworkTransition
NFS
PKI
PSDiagnostics
PSScheduledJob
PSWorkflow
PSWorkflowUtility
RemoteDesktop
ServerCore
ServerManager
ServerManagerTasks
SmbShare
SmbWitness
Storage
UserAccessLogging
Wdac
WindowsErrorReporting

PowerShell Snap-Ins

To see what snap-ins are available use Get-PSSnapin -registered thus:

PS C:\Users\Administrator> Get-PSSnapin -registered

PowerShell commands are not case sensitive, so you could just as easily have typed "get-pssnapin" (i.e. in all lower case).

To add a snap-in to make it available to the current session use Add-PSSnapin thus:

PS C:\Users\Administrator> Get-PSSnapin microsoft.systemcenter.virtualmachinemanager

which will load the snapin called "microsoft.systemcenter.virtualmachinemanager". You can load more than one snap-in at a time, just separate each name with a comma. Get-PSSnapin takes an optional flag "-name" which explicitly states that there is a name following to load, but this is optional so it is often quicker to leave it out.

If you wanted to load all the available registered snap-ins all at once use:

PS C:\Users\Administrator> Get-PSSnapin -registered | Get-PSSnapin -passthru

Should you wish to unload a snap-in from the current session use "Remove-PSSnapin", thus:

PS C:\Users\Administrator> Remove-PSSnapin microsoft.systemcenter.virtualmachinemanager



About the author: is a dedicated software developer and webmaster. For his day job he develops websites and desktop applications as well as providing IT services. He moonlights as a technical author and consultant.