对记性不好的人来说,命令行这东西,真的是又爱又恨. Powershell似命令又强于命令,cmd会让你感觉这功能不够,那功能不够.但是PS不同.你永远不知道多少参数命令待发掘.
Hyper-V单机服务器的一些powershell命令
虽然手里有SCVMM的授权,可是我到现在都没怎么去用.
下面是,对于我来说常用的一条命令..
假设:我在”D:\backup\OS Templates”放了下图这些硬盘文件.
脚本的目的是从我已经预先安装好模板中创建新的虚机
脚本只有两个参数需要输入,一个是虚机名,一个是版本.

请忽略英文拼写或语法问题
运行命令后,先从模块目录中复制出相应版本的模版文件.
以虚机名命令名存储在hyper-v目录中.
在虚机平台目录中创建一台虚机,
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
}
}