New-SCVMHost

Creates a VMM host from a physical computer by using the properties defined in a host profile.

Syntax

New-SCVMHost
   [-VMMServer <ServerConnection>]
   [-Description <String>]
   -ComputerName <String>
   -VMHostProfile <PhysicalComputerProfile>
   -SMBiosGuid <Guid>
   [-VMHostGroup <HostGroup>]
   [-IPAddress <String>]
   [-LogicalNetwork <LogicalNetwork>]
   [-Subnet <String>]
   [-BypassADMachineAccountCheck]
   [-ManagementAdapterMACAddress <String>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
New-SCVMHost
   [-VMMServer <ServerConnection>]
   -VMHostConfig <PhysicalComputerConfig>
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
New-SCVMHost
   [-VMMServer <ServerConnection>]
   [-Description <String>]
   -ComputerName <String>
   -VMHostProfile <PhysicalComputerProfile>
   -SMBiosGuid <Guid>
   [-VMHostGroup <HostGroup>]
   [-IPAddress <String>]
   [-LogicalNetwork <LogicalNetwork>]
   [-Subnet <String>]
   [-BypassADMachineAccountCheck]
   [-ManagementAdapterMACAddress <String>]
   -BMCAddress <String>
   -BMCRunAsAccount <RunAsAccount>
   [-BMCPort <UInt32>]
   -BMCProtocol <OutOfBandManagementType>
   [-BMCCustomConfigurationProvider <ConfigurationProvider>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]

Description

The New-SCVMHost cmdlet creates a Virtual Machine Manager (VMM) host from a physical computer by using the properties defined in a host profile. The physical computer must have an out-of-band controller.

Before you create a host, ensure that a PXE server has been added to VMM, a host profile has been created, and any needed driver files have been added to the library. Note: The PXE server you add to VMM must be in the same subnet as the physical computers that you want to convert to managed Hyper-V hosts.

For more information about the types of hosts supported by VMM, type Get-Help Add-SCVMHost -Detailed.

Examples

Example 1: Create a host from a physical computer by using a DHCP-based host profile

PS C:\> $BMCRAA = Get-SCRunAsAccount -Name "BMCRunAsAcct"
PS C:\> $NewPhysicalComputer = Find-SCComputer -BMCAddress "10.10.0.1" -BMCRunAsAccount $BMCRAA -BMCProtocol "IPMI"
PS C:\> $HostGroup = Get-SCVMHostGroup -Name "HostGroup01"
PS C:\> $HostProfile = Get-SCVMHostProfile -Name "HostProfile01"
PS C:\> New-SCVMHost -VMHostGroup $HostGroup -VMHostProfile $HostProfile -ComputerName "NewHost01" -BMCAddress $NewPhysicalComputer.BMCAddress -BMCRunAsAccount $BMCRAA -BMCProtocol "IPMI" -SMBIOSGUID $NewPhysicalComputer.SMBIOSGUID -ManagementAdapterMACAddress "00-1D-D8-B7-1C-00" -LogicalNetwork "LogicalNetwork01" -Subnet "192.168.0.1/24" -IPAddress "192.168.0.91"

The first command gets the Run As account object named BMCRunAsAcct and stores the object in the $BMCRAA variable.

The second command discovers the physical computer with the IP address of 10.10.0.1 using the Run As account supplied in $BMCRAA. It then stores the physical computer in the $NewPhysicalComputer variable.

The third command gets the host group object named HostGroup01 and stores the object in the $HostGroup variable.

The fourth command gets the host profile object named HostProfile01 and stores the object in the $HostProfile variable. HostProfile01 is configured to obtain an IP address through the DHCP service.

The last command creates a host from the physical computer stored in $NewPhysicalComputer using the host profile stored in $HostProfile, and names it NewHost01.

Example 2: Create a host from a physical computer by using a static IP-based host profile

PS C:\> $BMCRAA = Get-SCRunAsAccount -Name "BMCRunAsAcct"
PS C:\> $NewPhysicalComputer = Find-SCComputer -BMCAddress "10.10.0.1" -BMCRunAsAccount $BMCRAA -BMCProtocol "IPMI"
PS C:\> $HostGroup = Get-SCVMHostGroup -Name "HostGroup01"
PS C:\> $HostProfile = Get-SCVMHostProfile -Name "HostProfile02"
PS C:\> New-SCVMHost -VMHostGroup $HostGroup -VMHostProfile $HostProfile -BMCAddress $NewPhysicalComputer.BMCAddress -BMCRunAsAccount $BMCRAA -BMCProtocol "IPMI" -SMBIOSGUID $NewPhysicalComputer.SMBIOSGUID -ComputerName "NewHost02" -ManagementAdapterMACAddress "00-18-8B-0A-4D-76" -LogicalNetwork "LogicalNetwork01" -Subnet "192.168.1.1/24" -IPAddress "192.168.1.101"

The first command gets the Run As account object named BMCRunAsAccount and stores the object in the $BMCRAA variable.

The second command discovers the computer with the address 10.10.0.1, using the Run As account stored in $BMCRAA, and then stores the computer in the $NewPhysicalComputer variable.

The third command gets the host group object named HostGroup01 and stores the object in the $HostGroup variable.

The fourth command gets the host profile object named HostProfile02 and stores the object in the $HostProfile variable. HostProfile02 is configured to allocate a static IP address.

The last command creates a host from the physical computer stored in $NewPhysicalComputer using the host profile stored in $HostProfile, gives it the name NewHost02, and configures the MAC address, IPAddress, and subnet.

Example 3: Redeploy an existing host with a new host profile

PS C:\> $BMCRaa = Get-SCRunAsAccount -Name "BMCRunAsAcct"
PS C:\> $OldHost = Get-SCVMHost "NewHost02"
PS C:\> $OldBMCIP = $OldHost.physicalmachine.BMCAddress
PS C:\> $OldBMCProtocol = $OldHost.physicalmachine.BMCType
PS C:\> $OldComputer = Find-SCComputer -BMCAddress $OldBMCIP -BMCRunAsAccount $BMCRAA -BMCProtocol $OldBMCProtocol
PS C:\> $OldGuid = $OldComputer.SMBIOSGUID
PS C:\> $OldAdapter = Get-SCVMHostNetworkAdapter -VMHost $OldHost
PS C:\> $OldMAC = $OldAdapter[0].macaddress
PS C:\> $OldRAA = Get-SCRunAsAccount -Name "RunAsAccount01"
PS C:\> Remove-SCVMHost $OldHost -Credential $OldRAA
PS C:\> $NewHostGroup = Get-SCVMHostGroup -Name "HostGroup01"
PS C:\> $NewHostProfile = Get-SCVMHostProfile -Name "HostProfile02"
PS C:\> New-SCVMHost -VMHostGroup $NewHostGroup -VMHostProfile $NewHostProfile  -BMCAddress $OldBMCIP -BMCRunAsAccount $BMcRAA -BMCProtocol $OldBMCProtocol -SMBIOSGUID $OldGUID -ManagementAdapterMACAddress $OldMAC -ComputerName "Computer01" -LogicalNetwork "LogicalNetwork01" -Subnet "192.168.0.1/24" -IPAddress "192.168.0.93"

The first command gets the Run As account object named BMCRunAsAccount and stores the object in the $BMCRaa variable.

The next eight commands save properties from the host that you are going to redeploy.

The tenth command removes the old host from VMM.

The eleventh command gets the host group object named New HostGroup01 and stores the object in the $NewHostGroup variable.

The twelfth command gets the host profile object named HostProfile02 and stores the object in the $NewHostProfile variable.

The last command redeploys the old host using the previous settings that identify the host, but to a new host gorup (stored in $NewHostGroup) and with updated profile settings (stored in $NewHostProfile).

Parameters

-BMCAddress

Specifies, or updates, the out-of-band baseboard management controller (BMC) address for a specific physical machine. This might be an IP address, the fully qualified domain name (FQDN), or the DNS prefix (which is usually the same name as the NetBIOS name).

Typically, the BMC address and its connection to the network are separate from the IP address associated with a standard network adapter. Alternatively, some computers do use a standard network adapter to provide a single address for the BMC and for the network adapter. However, the BMC address has a unique port and is thus uniquely identifiable on the network.

  • Example IPv4 format: -BMCAddress "10.0.0.21"
  • Example Ipv6 format: -BMCAddress "2001:4898:2a:3:657b:9c7a:e1f0:6829"
  • Example FQDN format: -BMCAddress "Computer01.Contoso.com"
  • Example NetBIOS format: -BMCAddress "Computer01"

Note: By default, VMM uses an IP address or FQDN for the BMCAddress. However, it is also possible to create a Windows PowerShell module that enables you to specify other types of addresses as the BMC address.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-BMCCustomConfigurationProvider

Specifies, or updates, a configuration provider object for a baseboard management controller (BMC). A configuration provider is a plug-in to VMM that translates VMM PowerShell commands to API calls that are specific to a type of baseboard management controller. You should use this parameter with the Custom BMCProtocol.

Type:ConfigurationProvider
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BMCPort

Specifies, or updates, the out-of-band baseboard management controller (BMC) port for a specific physical machine. A BMC port is also known as a service processor port. Example default ports are 623 for IPMI and 443 for SMASH over WS-Man.

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BMCProtocol

Specifies, or updates, the protocol that VMM uses to communicate with the out-of-band baseboard management controller (BMC). Valid values are: IPMI, SMASH, Custom.

A BMC (also known as a service processor or management controller) is a specialized controller on the motherboard of a server that acts an interface between the hardware and system management software. If the motherboard of a physical machine includes a BMC, when the machine is plugged in (whether it is powered off or powered on, and whether or not an operating system is installed), information about system hardware and the state of that system hardware health is available.

Example format: -BMCProtocol "Custom"

Note: The Custom protocol requires that you use the BMCCustomConfigurationProvider parameter.

Type:OutOfBandManagementType
Accepted values:None, IPMI, SMASH, Custom
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-BMCRunAsAccount

Specifies the Run As account to use with the baseboard management controller (BMC) device.

Type:RunAsAccount
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-BypassADMachineAccountCheck

Indicates that this cmdlet reuses a computer account that already exists in Active Directory. By default, New-SCVMHost checks Active Directory for an existing account with the specified name to prevent overwriting computer accounts.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Specifies the name of a computer that VMM can uniquely identify on your network. The acceptable values for this parameter are:

  • FQDN
  • IPv4 or IPv6 address
  • NetBIOS name
Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Description

Specifies a description for the VMM host.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IPAddress

Specifies an IPv4 or IPv6 address.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobVariable

Specifies that job progress is tracked and stored in the variable named by this parameter.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LogicalNetwork

Specifies a logical network. A logical network is a named grouping of IP subnets and VLANs that is used to organize and simplify network assignments.

Type:LogicalNetwork
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ManagementAdapterMACAddress

Specifies the MAC address of the physical network adapter on the computer that is to be used by the VMM server to communicate with this host.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PROTipID

Specifies the ID of the Performance and Resource Optimization tip (PRO tip) that triggered this action. This parameter lets you audit PRO tips.

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsynchronously

Indicates that the job runs asynchronously so that control returns to the command shell immediately.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SMBiosGuid

Specifies the System Management BIOS globally unique identifier (SMBIOS GUID) for a physical computer that is associated with a record for that physical computer in VMM.

SMBIOS defines data structures and access methods that enable a user or application to store and retrieve information about hardware on this computer, such as the name of the system, manufacturer, or the system BIOS version. Windows gets SMBIOS data at system startup and makes that data available to programs.

Type:Guid
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Subnet

Specifies an IP subnet (IPv4 or IPv6) in Classless Inter-Domain Routing (CIDR) notation.

  • Example format for an IPv4 subnet: 192.168.0.1/24
  • Example format for an IPv6 subnet: FD4A:29CD:184F:3A2C::/64

Note: An IP subnet cannot overlap with any other subnet in a host group or child host groups.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMHostConfig

Specifies a physical computer configuration object.

Type:PhysicalComputerConfig
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-VMHostGroup

Specifies a virtual machine host group object.

Type:HostGroup
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMHostProfile

Specifies a virtual machine host profile object.

Type:PhysicalComputerProfile
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMMServer

Specifies a VMM server object.

Type:ServerConnection
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Outputs

Host

This cmdlet returns a Host object.

Notes

  • Requires a host profile object, which can be retrieved using the Get-SCVMHostProfile cmdlet.