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.