hashicorp/vagrant · warning

Configuring secondary network adapters through VMware on Win

Error message

Configuring secondary network adapters through VMware on Windows is not yet supported. You will need to manually configure the network adapter.

What it means

The Windows guest capability for configuring networks does not support secondary network adapters when the provider name starts with "vmware" (vmware_desktop, vmware_fusion, vmware_workstation). It prints a three-line warning and leaves the extra adapters unconfigured, so the guest must be configured manually.

Source

Thrown at plugins/guests/windows/cap/configure_networks.rb:19

# Copyright IBM Corp. 2010, 2025
# SPDX-License-Identifier: BUSL-1.1

require "log4r"

require_relative "../guest_network"

module VagrantPlugins
  module GuestWindows
    module Cap
      module ConfigureNetworks
        @@logger = Log4r::Logger.new("vagrant::guest::windows::configure_networks")

        def self.configure_networks(machine, networks)
          @@logger.debug("Networks: #{networks.inspect}")

          guest_network = GuestNetwork.new(machine.communicate)
          if machine.provider_name.to_s.start_with?("vmware")
            machine.ui.warn("Configuring secondary network adapters through VMware ")
            machine.ui.warn("on Windows is not yet supported. You will need to manually")
            machine.ui.warn("configure the network adapter.")
          else
            vm_interface_map = create_vm_interface_map(machine, guest_network)
            networks.each do |network|
              interface = vm_interface_map[network[:interface]+1]
              if interface.nil?
                @@logger.warn("Could not find interface for network #{network.inspect}")
                next
              end

              network_type = network[:type].to_sym
              if network_type == :static
                guest_network.configure_static_interface(
                  interface[:index],
                  interface[:net_connection_id],
                  network[:ip],
                  network[:netmask])

View on GitHub (pinned to 35f3160f4a)

Solutions

  1. Configure the adapter manually inside the guest (ncpa.cpl, or `netsh interface ip set address`)
  2. Remove the extra config.vm.network entries for Windows-on-VMWare boxes so only the primary adapter is used
  3. Run the Windows box under a provider whose guest network configuration is supported (VirtualBox, Hyper-V)

Example fix

# before
config.vm.network "private_network", ip: "192.168.50.5"  # warns on vmware + windows guest
# after
# (extra NIC removed from Vagrantfile; set inside the guest instead)
# netsh interface ip set address "Ethernet 2" static 192.168.50.5 255.255.255.0
Defensive patterns

Strategy: validation

Validate before calling

# Plugin/tooling guard: skip secondary NIC config on vmware + windows
return if machine.provider_name.to_s.start_with?("vmware") && machine.config.vm.guest.to_s == "windows"

Type guard

def secondary_nics_supported?(machine)
  !(machine.provider_name.to_s.start_with?("vmware") && machine.guest.name.to_s == "windows")
end

Prevention

When it happens

Trigger: A Windows guest on a VMware provider with any network definition beyond the primary NIC (config.vm.network :private_network or :public_network) during the configure-networks step of vagrant up or vagrant reload; machine.provider_name.to_s.start_with?("vmware") selects the warning branch.

Common situations: Porting a VirtualBox or Hyper-V Windows Vagrantfile to the commercial VMware plugin; multi-NIC topologies (management + data networks) on Windows guests.

Related errors


AI-assisted analysis of hashicorp/vagrant@35f3160f4a (2026-08-21). Data as JSON: /api/errors/48a13a90c1ceaa29. Report an issue: GitHub.