Sha256: 4d76fc4ecbf860380833a0c81df76e0b58de76f22ce0cd4f216a284352fae8d3
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
Param( [Parameter(Mandatory=$true)] [string]$VmId ) # Include the following modules $Dir = Split-Path $script:MyInvocation.MyCommand.Path . ([System.IO.Path]::Combine($Dir, "utils\write_messages.ps1")) $vm = Hyper-V\Get-VM -Id $VmId -ErrorAction "Stop" $networks = Hyper-V\Get-VMNetworkAdapter -VM $vm foreach ($network in $networks) { if ($network.IpAddresses.Length -gt 0) { foreach ($ip_address in $network.IpAddresses) { if ($ip_address.Contains(".") -And [string]::IsNullOrEmpty($ip4_address)) { $ip4_address = $ip_address } elseif ($ip_address.Contains(":") -And [string]::IsNullOrEmpty($ip6_address)) { $ip6_address = $ip_address } } } } # If no address was found in the network settings, check for # neighbor with mac address and see if an IP exists if (([string]::IsNullOrEmpty($ip4_address)) -And ([string]::IsNullOrEmpty($ip6_address))) { $macaddresses = $vm | select -ExpandProperty NetworkAdapters | select MacAddress foreach ($macaddr in $macaddresses) { $macaddress = $macaddr.MacAddress -replace '(.{2})(?!$)', '${1}-' $addr = Get-NetNeighbor -LinkLayerAddress $macaddress -ErrorAction SilentlyContinue | select IPAddress if ($ip_address) { $ip_address = $addr.IPAddress if ($ip_address.Contains(".")) { $ip4_address = $ip_address } elseif ($ip_address.Contains(":")) { $ip6_address = $ip_address } } } } if (-Not ([string]::IsNullOrEmpty($ip4_address))) { $guest_ipaddress = $ip4_address } elseif (-Not ([string]::IsNullOrEmpty($ip6_address))) { $guest_ipaddress = $ip6_address } if (-Not ([string]::IsNullOrEmpty($guest_ipaddress))) { $resultHash = @{ ip = $guest_ipaddress } $result = ConvertTo-Json $resultHash Write-Output-Message $result } else { Write-Error-Message "Failed to determine IP address" }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vagrant-unbundled-2.1.1.0 | plugins/providers/hyperv/scripts/get_network_config.ps1 |