win母盘制作 Hyper-V使用Powershell批量创建WIN虚拟机

简单来说下面几步

一、添加任务计划
    1.执行 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe   z:\IP.PS1          使用不登录也执行 使用最高权限运行 触发器设置延迟5s执行
    2.执行 C:\outdvd.bat                                                              使用不登录也执行 使用最高权限运行 触发器设置延迟15s执行
    
二、修改光驱盘符
    设置DVD设备盘符为 Z
    
三、因为win7 禁止执行Powershell脚本,使用管理员打开PowerShell设置打开策略
    set-executionpolicy remotesigned   是
    
    
四、删除该项注册表后关机,完成系统模板

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\

{4D36E972-E325-11CE-BFC1-08002BE10318}

批量配置ip和拨号 开win7虚拟机详细步骤

一、添加任务计划
1.执行 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe z:\IP.PS1 使用不登录也执行 使用最高权限运行 触发器设置延迟5s执行


image.png


image.png

其中程序或脚本填C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
添加参数填
Z:\IP.PS1
IP.PS1代码如下

copy Z:\拨号账号.TXT C:\Users\Administrator\Desktop
$wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled = 'true'"
$wmi.EnableStatic

2.执行 C:\outdvd.bat 使用不登录也执行 使用最高权限运行 触发器设置延迟15s执行


image.png



有两种选择
outdvd.ps1

powershell "(new-object -COM Shell.Application).NameSpace(17).ParseName('Z:').InvokeVerb('Eject')"

outdvd.bat

mshta "javascript:new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0).Eject();window.close();"

二、修改光驱盘符
设置DVD设备盘符为 Z



三、因为win7 禁止执行Powershell脚本,使用管理员打开PowerShell设置打开策略
Set-ExecutionPolicy RemoteSigned 是


image.png

四、删除该项注册表后关机,完成系统模板

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\

{4D36E972-E325-11CE-BFC1-08002BE10318}


ISO.BAT

ultraiso -vol-ume iso -file "%cd%\ip.ps1" -file "%cd%\拨号账号.txt"  -output "%cd%\ip.iso"

最后运行powdershell

#---------------------------批量创建WIN虚拟机改IP脚本20190702--------------------- 
#虚拟机存放路径
$VHDPath="e:\vhdmu\"
#虚拟机IP初始信息
$IP="192.168.88."
#虚拟机IP开始值
$IP_START=10
#准备创建虚拟机的数量
$IP_ZENJIA=2
#虚拟机网卡名称
$NetworkName1="pppoe"
#拨号密码
$PPPOEWD="823666"
#虚拟机cpu核数 
$LogicPrecesserCount=2 
#虚拟机内存
$MomeryCount=2GB 
#模板位置  
$MasterDiskPath="c:\mu.vhdx" 
#----------------------------下面部分不用修改------------------------ 
$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
#读取该虚拟机指定的拨号信息 
$PPPOE=(Get-Content C:\adsl.txt -TotalCount $I)[-1]
#创建一个虚拟机 
$HYName = $IP + $i + "/" + $PPPOE
New-VM -Name $HYName -path $VMDIR -MemoryStartupBytes $MomeryCount -VHDPath $VMCFDIR -SwitchName $NetworkName1
#到虚拟机磁盘目录
cd $VMDIR
#复制内网IP脚本
Copy-Item c:/ip.ps1  $VMDIR
#写入内网IP信息到脚本
"('$IP$I', '255.255.255.0')" | Out-File -Append ip.ps1 -encoding utf8
"" | Out-File -Append ip.ps1 -encoding utf8
#新建拨号信息
New-Item  "拨号账号.txt" -type File
#编辑拨号信息
"$PPPOE/$PPPOEWD" | Out-File -Append 拨号账号.txt -encoding utf8
#拷贝生成iso的脚本到虚拟机目录
Copy-Item c:/iso.bat  $VMDIR
#设置UltraISO环境变量
$Env:path=$Env:Path+";C:\Program Files (x86)\UltraISO"  
#执行生成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 
}

批量创建挂机宝
对应的iso.bat

ultraiso -volume iso -file "%cd%\ip.ps1" -output "%cd%\ip.iso"
#---------------------------批量创建挂机宝--------------------- 
#虚拟机存放路径
$VHDPath="d:\mokugaujibao\"
#虚拟机IP初始信息
$IP="192.168.93."
#虚拟机IP开始值
$IP_START=2
#准备创建虚拟机的数量
$IP_ZENJIA=20
#虚拟机网卡名称
$NetworkName1="freenat"
#虚拟机cpu核数 
$LogicPrecesserCount=4
#虚拟机内存
$MomeryCount=4GB 
#模板位置  
$MasterDiskPath="d:\moku10.vhdx" 
#----------------------------下面部分不用修改------------------------ 
$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
#读取该虚拟机指定的拨号信息 

#创建一个虚拟机 
$HYName = $IP + $i + "/上海摩库数据技术有限公司" 
New-VM -Name $HYName -path $VMDIR -MemoryStartupBytes $MomeryCount -VHDPath $VMCFDIR -SwitchName $NetworkName1
#到虚拟机磁盘目录
cd $VMDIR
#复制内网IP脚本
Copy-Item c:/ip.ps1  $VMDIR
#写入内网IP信息到脚本
"('$IP$I', '255.255.255.0')" | Out-File -Append ip.ps1 -encoding utf8
"" | Out-File -Append ip.ps1 -encoding utf8
#拷贝生成iso的脚本到虚拟机目录
Copy-Item c:/iso.bat  $VMDIR
#设置UltraISO环境变量
$Env:path=$Env:Path+";C:\Program Files (x86)\UltraISO"  
#执行生成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 
}

你可能感兴趣的:(win母盘制作 Hyper-V使用Powershell批量创建WIN虚拟机)