评论

收藏

[Windows] Hyper-V批量创建Windows虚拟机自动改IP+主机名+密码+拨号

服务系统 服务系统 发布于:2021-11-17 12:28 | 阅读数:669 | 评论:0

#---------------批量创建WIN虚拟机改IP+主机名+密码+拨号-------------------- #虚拟机存放路径$VHDPath="D:\vmvhd"#模板位置  $MasterDiskPath="D:\mupan.vhdx" #虚拟机密码设置  $password="wangdun" #虚拟机IP信息$IP="192.168.198."$GATEWAY="192.168.198.1"$DNS="223.5.5.5"#虚拟机IP开始值$IP_START=4#准备创建虚拟机的数量$IP_ZENJIA=1#虚拟机网卡名称$NetworkName="adsl"#虚拟机cpu核数 $LogicPrecesserCount=4#虚拟机内存$MomeryCount=2GB #----------------------------下面部分不用修改------------------------ $IP_END=$IP_START+$IP_ZENJIA - 1for($i=$IP_START;$i -le$IP_END;$i++) {    $VMDIR = $VHDPath + $IP +$I #创建虚拟机磁盘存放的文件夹mkdir $VMDIR #虚拟机名称$VMName = $IP + $i + ".vhdx" #虚拟机文件所在的完整路径$VMCFDIR = $VMDIR + "" + $VMName#拷贝母盘到虚拟机存放的目录下#Copy-Item $MasterDiskPath $VMCFDIRNew-VHD -ParentPath $MasterDiskPath -Path $VMCFDIR -Differencing#读取该虚拟机指定的拨号信息 $Contents=Import-Csv "c:\winpppoe.csv"$csvpppoe=$Contents.csvpppoe[$I]$csvpassword=$Contents.csvpassword[$I]$csvvmhost=$Contents.csvvmhost[$I]$csvvlan=$Contents.csvvlan[$I]$pshell1=$Contents.pshell[1]$pshell2=$Contents.pshell[2]#创建一个虚拟机 $HYName = $csvvmhost + "/" + $IP + $i + "/" + $csvpppoeNew-VM -Name $HYName -path $VMDIR -MemoryStartupBytes $MomeryCount -VHDPath $VMCFDIR -SwitchName $NetworkName#到虚拟机磁盘目录cd $VMDIR#生成改IP脚本到虚拟机目录New-Item  "ip.ps1" -type File$wmi="$"+"wmi"$computer="$"+"computer""copy Z:\拨号账号.TXT C:\Users\Administrator\Desktop"  |Add-Content ip.ps1 -encoding utf8 "$pshell1 "|Add-Content ip.ps1 -encoding utf8"$wmi.EnableStatic('$IP$I', '255.255.255.0')"  |Add-Content ip.ps1 -encoding utf8"#$wmi.SetGateways('$GATEWAY', 1)"  |Add-Content ip.ps1 -encoding utf8"#$wmi.SetDNSServerSearchOrder('$DNS')"  |Add-Content ip.ps1 -encoding utf8"$computer=Get-WMIObject  Win32_ComputerSystem" |Add-Content ip.ps1 -encoding utf8"$computer.Rename('$csvvmhost') | out-null" |Add-Content ip.ps1 -encoding utf8"net user administrator $password" |Add-Content ip.ps1 -encoding utf8"$pshell2" |Add-Content ip.ps1 -encoding utf8"" |Add-Content ip.ps1 -encoding utf8#新建拨号信息New-Item  "拨号账号.txt" -type File#编辑拨号信息"$csvpppoe/$csvpassword" | Out-File -Append 拨号账号.txt -encoding utf8#生成iso的脚本到虚拟机目录New-Item  "iso.bat" -type File"ultraiso -volume iso -file %cd%\ip.ps1 -file %cd%\拨号账号.txt  -output %cd%\ip.iso" |Add-Content  iso.bat #设置UltraISO环境变量$Env:path=$Env:Path+";C:"#执行生成iso脚本cmd /c iso.bat#虚拟机挂载iso文件set-VMDvdDrive -VMName $HYName -path $VMDIR\ip.iso#增加一个网卡适配器并挂载网卡#Add-VMNetworkAdapter $HYName -Name network2 #Connect-VMNetworkAdapter $HYName -Name network2 $NetworkName2#设置虚拟机内核数量Set-VMProcessor $HYName -Count $LogicPrecesserCount#设置动态内存#Set-VMMemory $HYName -StartupBytes 2048MB#Set-VMMemory $HYName -DynamicMemoryEnabled $true -MaximumBytes 2048MB -MinimumBytes 800MB#设置所有网卡的速率为20mb#Set-VMNetworkAdapter –VMName $HYName -MaximumBandwidth 20000000#删除网卡#Remove-VMNetworkAdapter -VMName $HYName -VMNetworkAdapterName network2 #开启路由器保护功能 Set-VMNetworkAdapter $HYName -RouterGuard On#启动虚拟朿Start-VM -Name $HYName }
母盘制作步骤
一、添加任务计划
1.执行 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe   z:\IP.PS1
   使用不登录也执行,使用最高权限运行,触发器设置延迟30秒开始执行
DSC0000.png
DSC0001.png
DSC0002.png
二、修改光驱盘符
设置DVD设备盘符为 Z
DSC0003.png
三、因为win7 禁止执行Powershell脚本,使用管理员打开PowerShell 输入
set-executionpolicy remotesigned    选择“是”
DSC0004.png
四、删除该项注册表
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\目录下
删除4D开头的选项,目的是批量新开机器的本地网卡名称为 “本地连接” DSC0005.png
五、关机,完成模板制作
使用到的机柜文件


DSC0006.png
DSC0007.png
批量创建完成后Hyper-V效果图
DSC0008.png
使用PowerShell批量创建端口映射方便远程登录管理
DSC0009.png


关注下面的标签,发现更多相似文章