随着Hyper-V 3.0和Windows Server 8即将发布,微软进一步明确了PowerShell v3将成为其服务器平台底层管理标准。最新的PowerShell v3包含了大量全新的cmdlets,实现服务器和Windows 8桌面的管理和自动化,其中也包括有超过1000条cmdlets的Hyper-V。
在过去几年中,微软增加了PowerShell脚本语言的戏码,通过它搭建很多产品的管理体系,最为著名的就是Exchange 2010。而即将出现的PowerShell v3将作为Hyper-V管理任务和命令的基础组件。
据微软内部人员透露,最终所有的微软图形界面管理工具都会把PowerShell作为底层执行命令。例如,您将可以通过底层执行PowerShell cmdlets的Systems Center系列管理工具,管理Windows Server role,如Hyper-V。
在不久的将来,您将完全使用PowerShell v3的命令行完成Hyper-V的安装和配置工作,不再需要GUI。
Hyper-V 3.0的PowerShell v3
首先从MSDN或TechNet下载Windows Server 8测试版代码。然后,在您选择的hypervisor上以虚拟机的方式进行安装。
我的Hyper-V 3.0测试环境
我广泛使用VMware Workstation 和Fusion,在上面安装测试代码很简单。最新的VMware Workstation 8甚至为Windows Server 8预装了机器类型,以测试列表的方式列出。我还可以下载到Windows Server 8 虚拟磁盘——一种定制的.vhd镜像。然后把它顺利加载到了现有的Hyper-V服务器中。
Windows Server 8安装完成后,通过下面的PowerShell命令启动Hyper-V角色的安装:
Add-WindowsFeature Hyper-V –Restart
(虽然命令中采用了“feature”,但实际上是个Role)
然后,加载Hyper-V PowerShell模块:
Import-Module Hyper-V
在Hyper-V 3.0中运行PowerShell v3 cmdlets
现在好戏开演。获取所有可以管理Hyper-V的cmdlets列表:
Get-Command –Module Hyper-V –Verb
向PowerShell加载了新模块后,我喜欢使用如下命令列出某个特定对象的所有相关属性:
Get-VM | Get-Member –MemberType Property
非常有趣的显示,对吧?现在您可以看到所有的属性,新的和旧的——诸如虚拟磁盘、内存分配、处理器计数等等,现在您可以通过各种Powershell cmdlets进行查询。
下面是我找到的一些有趣的新命令,请自行探索更多命令:
Enable-VMMigration #enable migrations
该cmdlets启用Hyper-V主机之间虚拟机的迁移功能
Add-VMMigrationNetwork #add subnets to the VM migration settings
通过执行该cmdlets,可以向Hyper-V迁移网络中添加子网。这样可以使支持迁移功能的宿主机设置更为灵活。
New-VMReplicationAuthorizationEntry #add authorization entry for a VM
该cmdlets创建了新的认证入口,包含新的Hyper-V宿主机(或被允许的主服务器),包括在Hyper-V集群中对应的副存储。
PowerShell v3的缺点
当您在PowerShell中获得一组新的Hyper-V cmdlets同时,也要对其缺点有所了解。新的Hyper-V 3.0 cmdlets不能管理老版本的Hyper-V。这是一个非常严重的问题,意味着管理员根据Hyper-V的不同必须采用不同的脚本去管理,直至完成所有宿主机的升级。
在Hyper-V 3.0和老版本之间存在不兼容很难理解,也带来不便。但是,大家知道这在软件厂商并不鲜见。对使用老版本Hyper-V的管理员,您需要从CodePlex下载PowerShell Library for Hyper-V。
【编辑推荐】