设为首页 收藏本站
查看: 1045|回复: 0

PowerShell 批量创建Linux虚机

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-23 11:06:07 | 显示全部楼层 |阅读模式
Write-Host -NoNewline -ForegroundColor Magenta '请输入要创建的虚机名称(如:VLNX******)'
[String]$VM_Name = Read-Host
Write-Host -NoNewline -ForegroundColor Magenta '请输入需要放在哪台宿主机上(如:PWSR******)'
[String]$VM_HostName= Read-Host
Write-Host -NoNewline -ForegroundColor Magenta '要部署CentOS6还是7?直接回车默认安装的是6(如:7 回车 )'
[int16]$VM_OSVersion= Read-Host

#判断虚机名称是否为大写字母
if ($VM_Name |findstr 'vlnx')
   { Write-Host -NoNewline -ForegroundColor Yellow '注意:虚机名需要使用大写字母!!!'
     break }
Else
   { }

$VM_Memory = 2GB
$VM_CpuCount = 2
$NetworkSwitch = "PublicNetwork"

#if判断要部署的是CentOS6还是CentOS7,默认是CentOS6
if ($VM_OSVersion -eq '7')
   {$Template_VHDX = "En_CentOS7_Std.vhdx"}
Else
   {$Template_VHDX = "En_CentOS6_Std.vhdx"}
$Template_VHDX_FilePath = "D:\Deploy_Script"

#if判断如果虚机所在宿主机为730xd,虚机文件存放位置为E盘  
if (( $VM_HostName -eq 'PWSR000006' ) -or ($VM_HostName -eq 'PWSR000007' ))
   { $VM_Path = 'E:\' + $VM_HostName + '_E_VMs'
     $VM_RemotePath = '\\' + $VM_HostName + '\E$\' + $VM_HostName + '_E_VMs' }
Else
   { $VM_Path = 'D:\' + $VM_HostName + '_D_VMs'
     $VM_RemotePath = '\\' + $VM_HostName + '\D$\' + $VM_HostName + '_D_VMs' }   
$VM_VHDPath = $VM_Path + '\' + $VM_Name + '\Virtual Hard Disks\'+ $VM_Name + '.vhdx'
$VM_VHDRemotePath = $VM_RemotePath + '\' + $VM_Name + '\Virtual Hard Disks\' + $VM_Name + '.vhdx'

#新建新虚机硬盘目录,并将目标硬盘Copy到新虚拟硬盘目录下
New-item -path $VM_RemotePath\$VM_Name -name "Virtual Hard Disks" -type directory
Copy-Item -Path $Template_VHDX_FilePath\$Template_VHDX  -Destination $VM_VHDRemotePath

#新建虚机

#Write-Host -ForegroundColor White "Debug info VMNAME: $VM_Name,HostName: $VM_HostName"

New-VM –Name $VM_Name -ComputerName $VM_HostName –Generation 1 -MemoryStartupBytes $VM_Memory -BootDevice IDE -SwitchName $NetworkSwitch –Path $VM_Path -VHDPath $VM_VHDPath

#设置CPU个数
Set-VM -Name $VM_Name -ComputerName $VM_HostName -ProcessorCount $VM_CpuCount

#禁用动态内存功能
#Set-VMMemory -Name $VM_Name -ComputerName $VM_HostName -DynamicMemoryEnabled $False  

#设置VLANID
if ($VM_name -like 'VLNX112*' -or $VM_name -like 'VLNX113*' -or $VM_name -like 'VLNX114*')
   { Set-VMNetworkAdapterVlan -ComputerName $VM_HostName -VMName $VM_Name -Access -VlanId 11}
Else
   { Set-VMNetworkAdapterVlan -ComputerName $VM_HostName -VMName $VM_Name -Access -VlanId 21}

#通过SCVMM分配静态MACAddress
#Import-Module virtualmachinemanager -Verbose
#$VM_HostServer=Get-SCVMHost -ComputerName $VM_HostName -VMMServer SCVMMServer.Contoso.com
#Read-SCVMHost -VMHost $FS_HostServer |Out-Null
Read-SCVMHost -VMHost $VM_HostName |Out-Null
$VM=Get-SCVirtualMachine -Name $VM_Name
#Write-Host "Debug info"
#$VM.Name
#Pause
$Adapter=$VM.VirtualNetworkAdapters[0]
Set-SCVirtualNetworkAdapter -VirtualNetworkAdapter $Adapter[0] -MACAddressType "Static" -MACAddress "00-00-00-00-00-00"

#启动虚机
#Start-VM -Name $VM_Name -ComputerName $VM_HostName
Start-SCVirtualMachine -VM $VM_Name

#添加计算机描述
#Set-ADComputer -Identity $VM_Name -Description ""



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-354053-1-1.html 上篇帖子: shell统计当前网络连接情况 下篇帖子: oldboy2016shell Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表