批量导入Hyper-V虚拟机时自动创建虚拟网卡关联虚拟交换机

简介:

    每次拿到用于实验活动的虚拟机时,都会配套拿到一份电子文档,里面写明了用于实验环境导入时预先创建Hyper-V虚拟机所需的虚拟网络设置;有些实验类型的虚拟机网络非常繁杂,单独创建太过繁琐,可是不创建虚拟机又无法正常导入Hyper-V的环境,所以作为懒人中的战斗懒,就顺手写了一个脚本,大致就是拿到拿到待导入的虚拟机路径,查找虚拟机配置文件,考虑到多个虚拟网络会有重叠,因此将每个独立虚拟机网路的位置保留下来;最后将这些虚拟机网络与当前环境下的虚拟机网络进行匹配,如果没有则导入。


    这里的懒人实在是懒,因此其实对于试验用的虚拟机只需要导入Private内部类型就足够了,我们的实验室虚拟机环境并没有提供外网连接;如果真要再区分内外网,那要考虑的因素就会多很多了!

写Shell也不是非常擅长的,不敢说慎用至少也就说仅供参考和测试使用吧!


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$VMNetconfig = @()
 
$CurrentSwitches = ( Get-VMSwitch ).name
$VMpath = "待导入的虚拟机路径"
$VMconfigfiles = ( Get-ChildItem -Recurse $VMPath \*.XML |Where -Object { $_ .BaseName  -match "^[\da-zA-Z]{8}-[\da-zA-Z]{4}-[\da-zA-Z]{4}-[\da-zA-Z]{4}-[\da-zA-Z]{12}$" })
$VMconfigfiles |ForEach  {
[xml] $VMconfig  = Get-Content $_
$VMNetconfig += Select-Xml -Xml $VMconfig -XPath "//AltSwitchName" |% { $_ .Node. '#text' }
}
[System.Collections.Generic.HashSet[string]] $UniqueNetconfig  = $VMNetconfig .split(" ")
 
foreach ($UniqueNetin$UniqueNetconfig)
{
if ($CurrentSwitches-notcontains" $UniqueNet ")
        {
New-VMSwitch -SwitchTypePrivate-Name $UniqueNet -Verbose
        }
}









本文转自 翟老猫 51CTO博客,原文链接:http://blog.51cto.com/3387405/1586496,如需转载请自行联系原作者
目录
相关文章
|
6天前
|
Oracle 关系型数据库 Linux
windows 11 hyper-v中oracle linux虚拟机中添加硬盘
在windows 11自带的hyper-v虚拟机中添加硬盘,并分区
77 6
|
7月前
|
编解码 虚拟化 云计算
关于 VMware 虚拟机中的 SVGA II 虚拟设备
关于 VMware 虚拟机中的 SVGA II 虚拟设备
144 0
|
9月前
|
Windows
常见的BUG---1、虚拟机启动之后,突然发现没有ens33网卡
常见的BUG---1、虚拟机启动之后,突然发现没有ens33网卡
|
6天前
|
Linux 虚拟化
VMware workstation 中centos7虚拟机在nat模式下怎么配置网卡,指定我想要的IP并且可以联网
https://blog.csdn.net/2302_78534730/article/details/132825156?spm=1001.2014.3001.5502
138 0
|
6天前
|
弹性计算 运维 Shell
修改虚拟机网卡IP 地址
【4月更文挑战第29天】
13 0
|
6天前
|
弹性计算 Shell KVM
查看KVM 虚拟机中的网卡信息
【4月更文挑战第29天】
10 0
|
6天前
|
弹性计算 运维 Shell
|
6天前
|
弹性计算 Shell KVM
|
6天前
|
虚拟化
设备管理中的虚拟机vmware网卡异常
设备管理中的虚拟机vmware网卡异常
|
6天前
|
存储 安全 搜索推荐
虚拟桌面基础结构(VDI)和虚拟机技术的区别和联系
虚拟桌面基础结构(VDI)和虚拟机技术的区别和联系
52 0