#—————批量创建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 – 1
for($i=$IP_START;$i -le$IP_END;$i++) {
$VMDIR = $VHDPath + $IP +$I
#创建虚拟机磁盘存放的文件夹
mkdir $VMDIR
#虚拟机名称
$VMName = $IP + $i + “.vhdx”
#虚拟机文件所在的完整路径
$VMCFDIR = $VMDIR + “\” + $VMName
#拷贝母盘到虚拟机存放的目录下
#Copy-Item $MasterDiskPath $VMCFDIR
New-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 + “/” + $csvpppoe
New-VM -Name $HYName -path $VMDIR -MemoryStartupBytes $MomeryCount -VHDPath $VMCFDIR -SwitchName $NetworkName
#到虚拟机磁盘目录
cd $VMDIR
#生成改IP脚本到虚拟机目录
New-Item “ip.ps1” -type File
$wmi=”#34;+”wmi”
$computer=”#34;+”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秒开始执行
二、修改光驱盘符
设置DVD设备盘符为 Z
三、因为win7 禁止执行Powershell脚本,使用管理员打开PowerShell 输入
set-executionpolicy remotesigned 选择“是”
四、删除该项注册表
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\目录下
删除4D开头的选项,目的是批量新开机器的本地网卡名称为 “本地连接”
五、关机,完成模板制作
使用到的机柜文件
批量创建完成后Hyper-V效果图
使用PowerShell批量创建端口映射方便远程登录管理