New-NBVirtualMachine
Since
v1.0.4
SYNOPSIS
Creates one or more virtual machines in Netbox Virtualization module.
SYNTAX
Single (Default)
New-NBVirtualMachine -Name <String> [-Site <UInt64>] [-Cluster <UInt64>] [-Tenant <UInt64>] [-Status <String>]
[-Role <UInt64>] [-Platform <UInt64>] [-vCPUs <UInt16>] [-Memory <UInt64>] [-Disk <UInt64>]
[-Primary_IP4 <UInt64>] [-Primary_IP6 <UInt64>] [-Custom_Fields <Hashtable>] [-Comments <String>]
[-Start_On_Boot <String>] [-Tags <Object[]>] [-Raw] [-ProgressAction <ActionPreference>] [-WhatIf] [-Confirm]
[<CommonParameters>]
Bulk
New-NBVirtualMachine -InputObject <PSObject> [-BatchSize <Int32>] [-Force] [-Tags <Object[]>] [-Raw]
[-ProgressAction <ActionPreference>] [-WhatIf] [-Confirm] [<CommonParameters>]
DESCRIPTION
Creates new virtual machines in Netbox. Supports both single VM creation with individual parameters and bulk creation via pipeline input.
For bulk operations, use the -BatchSize parameter to control how many VMs are sent per API request. This significantly improves performance when importing VMs from vCenter or other sources.
EXAMPLES
EXAMPLE 1
New-NBVirtualMachine -Name "webserver01" -Cluster 1 -vCPUs 4 -Memory 8192
Creates a single VM with 4 vCPUs and 8GB RAM.
EXAMPLE 2
$vms = Get-VM | ForEach-Object {
[PSCustomObject]@{
Name = $_.Name
Cluster = 1
vCPUs = $_.NumCpu
Memory = $_.MemoryMB
Disk = [math]::Round($_.UsedSpaceGB)
Status = 'active'
}
}
$vms | New-NBVirtualMachine -BatchSize 100 -Force
Imports VMs from VMware vCenter in bulk.
PARAMETERS
-Name
The name of the virtual machine. Required for single VM creation.
```yaml Type: String Parameter Sets: Single Aliases:
Required: True Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ```
-Site
The site ID. Optional in Netbox 4.x.
```yaml Type: UInt64 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-Cluster
The cluster ID. Optional - VMs can be standalone in Netbox 4.x.
```yaml Type: UInt64 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-Tenant
The tenant ID.
```yaml Type: UInt64 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-Status
Status of the VM. Defaults to 'Active'.
```yaml Type: String Parameter Sets: Single Aliases:
Required: False Position: Named Default value: Active Accept pipeline input: False Accept wildcard characters: False ```
-Role
The role ID for the VM.
```yaml Type: UInt64 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-Platform
The platform ID (e.g., VMware, Hyper-V).
```yaml Type: UInt64 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-vCPUs
Number of virtual CPUs.
```yaml Type: UInt16 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-Memory
Memory in MB.
```yaml Type: UInt64 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-Disk
Disk space in GB.
```yaml Type: UInt64 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-Primary_IP4
Primary IPv4 address ID.
```yaml Type: UInt64 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-Primary_IP6
Primary IPv6 address ID.
```yaml Type: UInt64 Parameter Sets: Single Aliases:
Required: False Position: Named Default value: 0 Accept pipeline input: False Accept wildcard characters: False ```
-Custom_Fields
Hashtable of custom field values.
```yaml Type: Hashtable Parameter Sets: Single Aliases:
Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ```
-Comments
Comments about the VM.
```yaml Type: String Parameter Sets: Single Aliases:
Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ```
-Start_On_Boot
Boot behavior for the VM (Netbox 4.5+ only). Values: 'on', 'off', 'laststate'
```yaml Type: String Parameter Sets: Single Aliases:
Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ```
-InputObject
Pipeline input for bulk operations. Each object should contain at minimum the Name property.
```yaml Type: PSObject Parameter Sets: Bulk Aliases:
Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ```
-BatchSize
Number of VMs to create per API request in bulk mode. Default: 50, Range: 1-1000
```yaml Type: Int32 Parameter Sets: Bulk Aliases:
Required: False Position: Named Default value: 100 Accept pipeline input: False Accept wildcard characters: False ```
-Force
Skip confirmation prompts for bulk operations.
```yaml Type: SwitchParameter Parameter Sets: Bulk Aliases:
Required: False Position: Named Default value: False Accept pipeline input: False Accept wildcard characters: False ```
-Tags
Common parameters
```yaml Type: Object[] Parameter Sets: (All) Aliases:
Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ```
-Raw
Return the raw API response instead of the results array.
```yaml Type: SwitchParameter Parameter Sets: (All) Aliases:
Required: False Position: Named Default value: False Accept pipeline input: False Accept wildcard characters: False ```
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
```yaml Type: SwitchParameter Parameter Sets: (All) Aliases: wi
Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ```
-Confirm
Prompts you for confirmation before running the cmdlet.
```yaml Type: SwitchParameter Parameter Sets: (All) Aliases: cf
Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ```
-ProgressAction
{{ Fill ProgressAction Description }}
```yaml Type: ActionPreference Parameter Sets: (All) Aliases: proga
Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ```
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
INPUTS
OUTPUTS
System.Management.Automation.PSObject
NOTES
AddedInVersion: v1.0.4
Common parameters
common request params
common bulk params
RELATED LINKS
https://netbox.readthedocs.io/en/stable/models/virtualization/virtualmachine/