V批量创建Windows虚拟机自动改IP(虚拟机批量创建用户

#—————批量创建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批量创建端口映射方便远程登录管理

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注