我从Hyper-V返回IP/MAC地址
对于具有多个IP/MAC地址的VM,我得到重复的VM名称,IE,如果VM有2个IP/MAC,我得到两个相同的VM名称,如果它有3个IP/MAC,那么得到3个相同的VM名称,VMname存储在$virtm变量中
$vms=Get-VM | Where { $_.State –eq ‘Running’ } | Select-Object -ExpandProperty Name
foreach($vm in $vms) {
$out=Get-VMNetworkAdapter -vmname $vm | select VMName, MacAddress, IPAddresses
$virtm=($out.VMName | ForEach-Object {
$_ | Get-Unique
})
$ip=($out.IPAddresses | ForEach-Object {
$_ | ? {$_ -notmatch ':'}
}) -join " "
$mac = ($out.MacAddress | ForEach-Object {
$_.Insert(2,":").Insert(5,":").Insert(8,":").Insert(11,":").Insert(14,":")
}) -join ' '
Write-Output "$virtm, $ip, $mac"
}电流输出
OAP80 OAP80, 192.168.1.45 192.168.2.45, 00:15:5D:58:12:5E 00:15:5D:58:12:5F期望输出
OAP80, 192.168.1.45 192.168.2.45, 00:15:5D:58:12:5E 00:15:5D:58:12:5F发布于 2020-02-28 08:16:31
我太蠢了
而不是
$virtm=($out.VMName | ForEach-Object {
$_ | Get-Unique
}) 只需要$virtm=$out.VMName | Get-Unique
https://stackoverflow.com/questions/60447648
复制相似问题