最近开始更新博客,废话不多说,博客才是硬道理。
九叔今天处理一个Hyper-V的需求,用户需要在Hyper-V管理面板显示虚拟机名称,同时还需要带上Hyper-V虚拟机的IP地址。
如果这个需求挨个登录虚拟机,然后一个一个修改,是绝对没有问题的,但是方法太LOW
用Hyper-V的原生命令可以解决。使用Get-VMNetworkAdapter来完成。这里用invoke或者get-vm都可以在远程的Hyper-V主机上执行命令,可以根据需要进行选择。
以下代码部分
$vmnames = invoke-command -computername 此处写Hyper-V主机名 -command { (Get-VM * | ?{ $_.name -like "*wweb*" }).name } $vmnames | %{ $x = Get-VM -ComputerName 此处写Hyper-V主机名 -Name $_ $ip = ($x | Get-VMNetworkAdapter).ipaddresses $nname = $x.name + '-' + $ip #此处是新的计算机名也就是带带上了IP地址的形式 Rename-VM -ComputerName 此处写Hyper-V主机名 -Name $_ -NewName $nname }
最后显示效果如下,完成需求。