新建VM_Script
在Hyper-V群集中,不需要设置VM的自启动,当宿主机意外关机重新启动后,上面的VM会自动转移到另一台主机;如果另一台主机处于关机状态,则宿主机重新启动后,其VM也会自启动(如果其VM在宿主机关机前已处于关机状态,则不会自启动)
# Get-Module -ListAvailable
#导入VMM管理模块
#Import-Module -Name virtualmachinemanager
#定义变量
$VMName = "psvmname"
$VMDescription = "psdescrib1"
$computerName = "pspcname1"
$templateName = "Template_Win08R2_3"
$hostName = "hyperv01.testt.com"
$vmhost = Get-SCVMHost | ? {$_.Name -eq $hostName}
$vmtemplate = Get-SCVMTemplate -VMMServer localhost |? {$_.name -eq $templateName}
#新建虚拟机:阻止动态优化,延迟30S启动,开机自启动,关闭GuestOS
New-SCVirtualMachine -Name $VMName -ComputerName $computerName -VMTemplate $vmtemplate -Description $VMDescription -BlockDynamicOptimization $true -ReturnImmediately -DelayStartSeconds "30" -path "C:\ClusterStorage\Volume1\" -VMHost $vmhost -StartVM -StartAction AlwaysAutoTurnOnVM -StopAction ShutdownGuestOS
-Domain "" -DomainJoinCredential
-Workgroup ""
############################################################
$UserName = "administrator"
#将纯文本字符串“boc.123”转换为安全字符串,并将结果存储在 $Password变量中
$Password = ConvertTo-SecureString "boc.123" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
$cred.password
$cred.username
#Get-WmiObject Win32_OperatingSystem -Credential $cred -Computer 192.168.12.6
############################################################
======================================================
# Get-Module -ListAvailable
#导入VMM管理模块
#Import-Module -Name virtualmachinemanager
#定义变量
$VMName = "psvmname"
$VMDescription = "psdescrib"
$computerName = "pspcname"
$templateName = "Template_Win08R2_2"
$hardwareprofileName = "ConfigFile_Hardware"
$guestosprofileName = "ConfigFile_OS"
$hostName = "hyperv02.testt.com"
$vmhost = Get-SCVMHost | ? {$_.Name -eq $hostName}
$vmtemplate = Get-SCVMTemplate -VMMServer localhost |? {$_.name -eq $templateName}
$vmhwprofile = Get-HardwareProfile -VMMServer localhost | ? {$_.Name -eq $hardwareprofileName}
$vmosprofile = Get-GuestOSProfile -VMMServer localhost | ? {$_.Name -eq $guestosprofileName}
#使用已有的硬件和OS配置文件创建一个新的临时模板
New-SCVMTemplate -Name "Temporary NewTemplate43210" -Template $vmtemplate -HardwareProfile $vmhwprofile -GuestOSProfile $vmosprofile -ComputerName $computerName
$template_New =Get-SCVMTemplate |? {$_.name -eq "Temporary NewTemplate43210"}
#设置虚拟机配置信息
$vmconfig = New-SCVMConfiguration -VMTemplate $template_New
Set-SCVMConfiguration -VMConfiguration $vmconfig -VMHost $vmhost
Update-SCVMConfiguration -VMConfiguration $vmconfig
#新建虚拟机
New-SCVirtualMachine -Name $VMName -VMConfiguration $vmconfig -Description $VMDescription -BlockDynamicOptimization $false -ReturnImmediately -DelayStartSeconds "0" #-JobGroup "32082ef0-f4e5-4346-89a7-94bb7754dc5d"
#删除临时模板
Get-SCVMTemplate | ? {$_.Name -eq "Temporary NewTemplate43210"} |Remove-SCVMTemplate
可参考:http://technet.microsoft.com/en-us/library/jj654339(v=sc.10).aspx
=============================================================
New-VM
#########################################脚本功能########################################
#该脚本用来新建虚机,虚机可运行于不同宿主机上,使用前先编辑vmconfig.csv文件,确定虚机配置
######################################################################################### #定义变量
#定义虚机配置文件名称,该文件与脚本位于相同目录下
$configFileName = "vmconfig.csv"
#定义虚拟交换机名称
$VMSwitchName = "Broadcom NetXtreme Gigabit Ethernet - Virtual Switch" #脚本开始
$CurrentPath = $MyInvocation.MyCommand.Path.substring(0,$MyInvocation.MyCommand.Path.LastIndexOf('\')+1)
$configFilePath = $CurrentPath + $configFileName
$vmconfigs = Import-Csv $configFilePath
foreach ($vmconfig in $vmconfigs)
{
$vmName = $vmconfig.Name
$vmPath = $vmconfig.Path
$vmPath2 = Join-Path $vmconfig.Path $vmName
$vmVHDPath = Join-Path $vmPath2 "Virtual Hard Disks"
New-Item $vmVHDPath -ItemType directory -Force|Out-Null
$OldVHDFile = $vmconfig.OldVHDPath
Copy-Item -Path $OldVHDFile $vmVHDPath
$OldVHDFileName = $OldVHDFile.Split("\")[$OldVHDFile.Split("\").Length-1]
$NewVHDFileName = $vmName + "_" + $OldVHDFileName
Rename-Item "$vmVHDPath\$OldVHDFileName" $NewVHDFileName
$vmVHDFilePath = $vmVHDPath + "\" + $NewVHDFileName
$Phy_ServerName = $vmconfig.Server
$MemorySize = ([int64]$vmconfig.Memory)*1024*1024
If (($NewVHDFileName.Contains("")))
{
New-VM -Name $vmName -ComputerName $Phy_ServerName -MemoryStartupBytes $MemorySize -Path $vmPath -VHDPath $vmVHDFilePath -BootDevice IDE
Remove-VMNetworkAdapter -vmname $vmName -ComputerName $Phy_ServerName
Add-VMNetworkAdapter -IsLegacy $true –VMName $vmname -SwitchName $vmSwitchName -ComputerName $Phy_ServerName
}
Else
{New-VM -Name $vmName -ComputerName $Phy_ServerName -MemoryStartupBytes $MemorySize -Path $vmPath -VHDPath $vmVHDFilePath -BootDevice IDE -SwitchName $VMSwitchName}
If ($vmconfig.VlanID -ne $null)
{Set-VMNetworkAdapterVlan –VMName $vmName -Access –VlanId $vmconfig.VlanID -ComputerName $Phy_ServerName}
Set-VMProcessor -VMName $vmName -Count $vmconfig.CPU -ComputerName $Phy_ServerName
Set-VM -VMName $vmName -AutomaticStartAction StartIfRunning -AutomaticStopAction ShutDown -ComputerName $Phy_ServerName
#Start-VM -VMName $vmName -ComputerName $Phy_ServerName
}
附:vmconfig.csv
Name,CPU,Memory,VlanID,Server,Path,OldVHDPath
VM04,2,2000,101,WHVCS01,C:\ClusterStorage\Volume1,D:\Hyper-V\VHD\Win2008R2.vhdx
VM05,8,8000,102,WHVCS02,C:\ClusterStorage\Volume1,D:\Hyper-V\VHD\Win2003.vhdx
===
将虚机加入到群集
get-vm |Add-VMToCluster
get-vm |select name,isclustered
新建VM_Script的更多相关文章
- Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化 每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat
Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 ...
- Partition1:新建分区表
未分区的表,只能存储在一个FileGroup中:对Table进行分区后,每一个分区都存储在一个FileGroup,或分布式存储在不同的FileGroup中.对表进行分区的过程,是将逻辑上完整的一个表, ...
- 电脑新建svn仓库
步骤1:安转svg: 注意事项: 安装的时候选择:Modify 安装到以下图片的步骤时: 黄色区域选择: 步骤2:新建svn仓库文件夹(本教程例子:D:\svn-5gpos),选择文件夹右键,点击下图 ...
- Vertica 安装,建库,新建测试用户并授予权限,建表,入库
测试环境:RHEL 6.4 + Vertica 6.1.3-7 需求:搭建Vertica数据库3节点的测试环境,建立测试用户,建表,测试数据入库. 1.各节点关闭防火墙和SELinux,配置主机名,I ...
- Intellij Idea 15 下新建 Hibernate 项目以及如何添加配置
1.说明:Idea 下,项目对应于 Eclipse 下的 workspace,Module 对应于 Eclipse 下的项目.Idea 下,新添加的项目既可以单独作为一个 Project,也可以作为一 ...
- xcode7.1新建项目等问题
一.LaunchImage不显示 解决办法: 1.在Assets.xcassets新建LaunchImage并加入不同屏幕的launchImage 2.点击项目名,点击TARGETS,选择Genera ...
- C# 复制指定节点的所有子孙节点到新建的节点下
XML结构: 新建一个mask_list节点,一个procedure节点,将上面的mask_list和procedure节点的所有子孙节点添加到新建的mask_list和procedure节点 Xml ...
- 【Oracle基本操作1】 数据库的新建删除
一.新建数据库 1.新建数据库. 1.1打开 Database Configuration Assistant : 1.2选择新建数据库,下一步,选第一个"一般用途或事物处理": ...
- 每次新建项目出现appcompat_v7 解决方法
ADT升级版本后每次新建项目出现appcompat_v7 , 解决方案如下 问题生成:
随机推荐
- 创建Web API
引言 在公司中用到的都是webAPI的应用程序,这个东西之前没有接触过.但是这个并不是什么新鲜的东西,因我们 之前有mvc的基础,所以说学习这个东西还是比较容易的,在开始的时候自己可能突然蒙圈了.因为 ...
- Window.onLoad 和 DOMContentLoaded事件的先后顺序
相信写js的,都知道window.onload吧,但是并不是每个人都知道DOMContentLoaded,其实即使你不知道,很有可能你也经常使用了这个东西. 一般情况下,DOMContentLoade ...
- [Lua]入门教程
什么是Lua Lua 是一个小巧的脚本语言.是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Rober ...
- linq性能剖析
Orcas(VS2008&Framework3.5)给我们带来了很多令人兴奋的新特性,尤其是LINQ的引进,可以说方便了一大批开发 人员和框架设计人员.过去,当我们使用O/RMapping的一 ...
- jboss服务器配置多实例
jboss配置多实例的重要性 在开发, 测试项目的过程中, 我们经常需要在同一台主机上, 同一个服务器上配置多个运行实例.这样做有一下几点好处: 在项目开发, 调试阶段能最大限度的节省资源 某个实例出 ...
- Shell script之if...then
1 Variable in shell If you want to print variable, then use echo command. In front of the variable ...
- 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程08:虚拟键盘实现》--本系列完结
8.虚拟键盘实现 概述: 硬键盘就是物理键盘,平时敲的那种.软键盘是虚拟的键盘,不是在键盘上,而是在"屏幕"上.虚拟按键就是虚拟键盘的一部分,根据功能需求,提供部分按键效果的UI可 ...
- 创建被访问的swf文件
首先创建一个fla文件,名字叫movie.fla,在该文件库中放一个mc, 并将其拖放到舞台上,然后 命名为test_mc, 然后在库中给该mc绑定一个类,类名随意. 创建访问swf文件的swf文件 ...
- First & First
First有记录则返回,否则返回null FirstOrDefault有记录则返回,否则NEW一个新的实体对象返回
- TCP包头
每发一个包,不论大小协议头会占用一定的空间 TCP头20字节,IP头20字节,MAC头14字节,共54字节 //Mac头部,总长度14字节 typedef struct _eth_hdr { ...