Skip to content

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

https://netbox.readthedocs.io/en/stable/models/virtualization/virtualmachine/