分享

Hyper-V 常用Powershell脚本(补充1)

 shuer的藏宝库 2017-03-26
每日头条
5天前
2017-03-21
[ 文章导读 ] 对记性不好的人来说,命令行这东西,真的是又爱又恨. Powershell似命令又强于命令,cmd会让你感觉这功能不够,那功能不够.但是PS不同.你永远不知道多少参数命令待发掘.Hyper-V单机服务器的一些powershell命令 虽然手里有SCVMM的授权,可是我到现在都没怎么去用 ...

对记性不好的人来说,命令行这东西,真的是又爱又恨. Powershell似命令又强于命令,cmd会让你感觉这功能不够,那功能不够.但是PS不同.你永远不知道多少参数命令待发掘.

Hyper-V单机服务器的一些powershell命令

虽然手里有SCVMM的授权,可是我到现在都没怎么去用.

下面是,对于我来说常用的一条命令..

假设:我在”D:\backup\OS Templates”放了下图这些硬盘文件.Hyper-V 常用Powershell脚本(补充1)脚本的目的是从我已经预先安装好模板中创建新的虚机

脚本只有两个参数需要输入,一个是虚机名,一个是版本.

Hyper-V 常用Powershell脚本(补充1)

请忽略英文拼写或语法问题

运行命令后,先从模块目录中复制出相应版本的模版文件.

以虚机名命令名存储在hyper-v目录中.Hyper-V 常用Powershell脚本(补充1)

在虚机平台目录中创建一台虚机,

Function new-vms{

Get-Variable -Name VM* | Remove-Variable

Clear-Host

$VMName=Read-host “Input the VM Name”

$VMSwitch=”vlan”

$VMTempPath=”D:\backup\OS Templates”

$VMRootPath=”D:\Hyper-V\”

$VMPath=$VMRootPath+”Virtual Machines\”

$VHDPath=$VMRootPath+”Virtual Hard Disks\”

$VHDFiles=(-join(“$VHDPath”,”$VMName”,”-C.vhdx”))

$VMTemplates=Get-childItem $VMTempPath

Write-host ” `n List ALL Available OS Template in $VMTempPath : `n ” -ForegroundColor Yellow

Foreach ($VMversion in $VMTemplates )

{Write-Host $VMTemplates.IndexOf($VMversion) $vmversion.Name.Split(“.vhdx”) -ForegroundColor DarkYellow }

$VMVchoice=Read-Host “Type the index-number of version”

$VMTfiles=Get-childItem $VMTempPath | Select-Object -Index $VMVchoice | Copy-Item -Destination $VHDFiles -Force

New-VM -Name $VMName -MemoryStartupBytes 4GB -Path $VMPath -VHDPath $VHDFiles -SwitchName $VMSwitch

}

  • 虚机的$VMSwitch=”vlan” 是预先定义好了.我想你也不会常改更换.

  • -MemoryStartupBytes 4GB 内存填了4G.主要不想运行命令填太多参数.

  • VHDX加了_C 是想标注以C盘.后期添加多余的硬盘.

  • 这里有个注意点.我用了索引号为选择,所以是从0开始,这点要注意一下.

  • 模版这种东西,越简单越好.太多参数.所以不方便导出.

这两条有时候也会用.全关, 全开虚机.不常用.

但这是最基本的格式.

function shutdown-vms{

Get-Variable -Name VM* | Remove-Variable

$VMlist=get-vm|select name

foreach ($VMname in $VMlist)

{

stop-vm -Name $vmname.name

}

}

function startup-vms{

Get-Variable -Name VM* | Remove-Variable

$VMlist=get-vm|select name

foreach ($VMname in $VMlist)

{

start-vm -Name $vmname.name

}

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多