When creating a Hyper-V internal switch on Windows Server 2012, the virtual adapter may show as "Unidentified Network" despite proper configuration. This prevents network connectivity between host and guest VMs, particularly when trying to implement Internet Connection Sharing (ICS).
Comparing two server instances reveals distinct behaviors:
// Working configuration (Server #2):
- Internal switch properly recognized
- Network connectivity established
- ICS functioning normally
// Problem configuration (Server #1):
- "Unidentified Network" status
- Missing from Network Locations
- No automatic IP assignment
First, verify basic network configuration with PowerShell:
Get-NetAdapter | Where-Object {$_.Name -like "*vEthernet*"} | Format-List Name,Status,MacAddress,DriverInformation
Then check IP assignment status:
Get-NetIPInterface -InterfaceAlias "vEthernet (Internal Switch)" |
Select-Object InterfaceAlias,ConnectionState,AddressFamily
The primary distinction appears in the Network Location Awareness (NLA) service behavior. A working system automatically assigns the "Domain Network" or "Private Network" profile, while the problematic system fails to categorize the connection.
Method 1: Manual Network Profile Assignment
# Identify the interface index
$ifIndex = Get-NetConnectionProfile | Where-Object {$_.InterfaceAlias -like "*Internal*"} | Select-Object -ExpandProperty InterfaceIndex
# Set network category to Private
Set-NetConnectionProfile -InterfaceIndex $ifIndex -NetworkCategory Private
Method 2: Reset Network Components
Execute these commands in sequence:
netsh int ip reset reset.log
netsh winsock reset
Restart-Computer -Force
If standard methods fail, examine the NLA service:
Get-Service NlaSvc | Restart-Service -Force
Get-NetAdapter | Disable-NetAdapter -Confirm:$false
Get-NetAdapter | Enable-NetAdapter
After resolving the unidentified network issue, configure ICS properly:
# On the physical adapter
Set-NetIPInterface -InterfaceAlias "Ethernet" -Forwarding Enabled
Set-NetIPInterface -InterfaceAlias "vEthernet (Internal Switch)" -Forwarding Enabled
# Enable ICS through registry
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters" -Name "ScopeAddress" -Value "192.168.137.0"
Confirm all components are communicating:
Test-NetConnection -ComputerName 192.168.137.1 -Port 53
Get-NetNat | Where-Object {$_.Name -eq "ICS"} | Format-List
When creating a Hyper-V Internal Switch on Windows Server 2012, many administrators encounter the "Unidentified Network" status despite proper virtual adapter creation. This occurs when the host system has a single physical NIC configured with static IPs while attempting to share internet connectivity through ICS (Internet Connection Sharing).
From the screenshots provided, we can observe critical differences:
- Network Connections UI: Functional systems show the Internal switch under "Networks" while problematic ones display it separately
- Adapter Properties: The working configuration automatically acquires APIPA addresses (169.254.x.x) whereas the problematic one shows no address assignment
Here's the correct setup sequence verified across multiple deployments:
# PowerShell verification command
Get-VMSwitch -SwitchType Internal | Format-Table Name, SwitchType
# Expected output:
# Name SwitchType
# ---- ----------
# InternalSwitch Internal
1. Network Location Awareness Service:
sc config NlaSvc start= auto
net start NlaSvc
2. ICS Configuration:
Manual registry tweak often required:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters]
"ScopeAddress"=hex(7):31,00,39,00,32,00,2e,00,31,00,36,00,38,00,2e,00,30,00,2e,\
00,30,00,00,00,00,00
When standard fixes fail, examine the binding order:
netsh interface ipv4 show interfaces
# Correct binding order should show:
# Idx Met MTU State Name
# --- --- ----- ----------- ---------------------------
# 1 50 1500 connected Internal Ethernet Port
# 2 10 1500 connected Physical NIC
Active Directory-integrated systems may require additional DNS configuration:
# For AD environments
Add-DnsServerResourceRecordA -Name "HYPERV-INT" -ZoneName "domain.local"
-IPv4Address "192.168.137.1" -CreatePtr