如何在Hyper-V里使用PowerShell或VBScript脚本?

如何在Hyper-V里使用PowerShell或VBScript脚本?

作者:无名 2009-06-30 18:05:12

系统

Windows

虚拟化 为了有效地管理虚拟化平台,你需要强有力的脚本工具。这能允许几种级别的配置,并且缩短配置时间。

为了有效地管理虚拟化平台,你需要强有力的脚本工具。这能允许几种级别的配置,并且缩短配置时间。微软hypervisor的脚本选项包括能在Hyper-V脚本环境里使用VBScript和增强型PowerShell。在本文中,TechTarget中国特约虚拟化专家Rick Vanover将介绍Hyper-V脚本是如何工作的,并举出几个例子。

Hyper-V的脚本环境通常叫做Windows Management Instrumentation(WMI),我们将注重虚拟化命名空间。使用WMI界面,管理员拥有使用Hyper-V完成大量任务的脚本。使用PowerShell Management Library让管理更加轻松。

确定使用何种脚本取决于需要什么及可用什么。我会关注不能由System Center Virtual Machine Manager(SCVMM)集中管理的Hyper-V服务器,因为微软为SCVMM实施提供了额外的脚本选项。检查TechNet页查看SCVMM脚本概况。

微软更擅长书写脚本
 
我的职业就是围绕着所需的脚本打转。微软有比你或者我自己独立创建的更好的脚本。幸好有许多资源可以使用。下面是一个清单,列出了开始使用Hyper-V脚本的在线资源:

Virtual PC Guy的网络日志。Ben Armstrong的Microsoft Developer Network (MSDN)博客有来自所有微软虚拟化系统的简单脚本资源。

Taylor Brown的博客。这是另一个强有力的资源。Brown包括了几个使用案例,包括关于SCVMM的一个案例。

微软虚拟化团队博客地址。这个博客包括所有与Hyper-V相关的东西,也有其他虚拟化资源。

PowerGUI.org的Hyper-V PowerPack。这相当于VMware的VI Toolkit,来自PowerGUI的功能是必须要有的,确保查看TechTarget上Eric Seibert写的关于这个工具包的技巧。

获取虚拟机信息的案例

既然我们对脚本选项作了一个概述,现在我们来看看实例。在Hyper-V里使用的PowerShell脚本,几乎每个资源都以查询脚本开始,尤其是包括决定性操作的脚本。这只是与Hyper-V的虚拟化命名空间交互影响的一个单行方式,并获取虚拟机信息就像它存在于命名空间。许多脚本想要查询这个获取当前的状态,如OperationalStatus的值,这表明了虚拟机的运行状态。下面这个简单的命令能从名为“TESTVM1”的虚拟机获取信息:

Get-WmiObject -Namespace root\virtualization -Query “Select * From Msvm_ComputerSystem Where ElementName=’TESTVM1′”

如果你想在自己的环境中运行虚拟机,那它的名字是唯一需要更改的地方。当在PowerShell里执行时,显示结果见下图1:

 

点击放大

注意,虚拟机的OperationalStatus值显示为“2”,意味着它在运行。

使用VBScript脚本停止或启动虚拟机

开启和停止虚拟机这样的基本任务是学习脚本的好的开始。不同于PowerShell,Hyper-V机器能通过VBScript交互,并且能完全访问WMI虚拟化命名空间。下面的脚本执行的是启动使用由VBScript关闭的虚拟机:

Option Explicit

Dim CallWMI

Dim InventoryVMs

Dim YourVM

YourVM = “TESTVM1”

Set CallWMI = GetObject(“winmgmts:\\.\root\virtualization”)

Set InventoryVMs = CallWMI.ExecQuery(“SELECT * FROM Msvm_ComputerSystem

WHERE ElementName='” & YourVM & “‘”)

InventoryVMs.ItemIndex(0).RequestStateChange(2)

如PowerShell,脚本里唯一需要更改的地方是“YourVM”的在线值,VBScript。保存这个文本为本地文件系统上的.VBS文件,允许其在本地执行。

现在我们在远程Hyper-V服务器上执行关闭命令。先前的例子是为了在拥有Hyper-V和特定虚拟机的服务器上本地运行脚本。有多台Hyper-V服务器并且不执行SCVMM对环境有利。这个脚本将在Server55上远程关闭(强制关闭)TESTVM1虚拟机。

Option Explicit

Dim CallWMI

Dim InventoryVMs

Dim YourVM

YourVM = “TESTVM1”

Set CallWMI = GetObject(“winmgmts:\\SERVER55\root\virtualization”)

Set InventoryVMs = CallWMI.ExecQuery(“SELECT * FROM Msvm_ComputerSystem

WHERE ElementName='” & YourVM & “‘”)

InventoryVMs.ItemIndex(0).RequestStateChange(3)

注意,第六行输入了Server55的名字,这是宿主TESTVM1的Hyper-V服务器。它能从系统远程运行,注意WMI命名空间,如另一台Windows Server 2008服务器。强制关闭如上面例子中最后一行的代号3发送。其他流行的虚拟机代号包括以下这些:

Reboot (10):这个代号在虚拟机上执行硬启动。
Pause (32768):这个代号暂停虚拟机。

测试Hyper-V脚本

Hyper-V脚本应该在测试环境里执行。如广告所说,PowerShell是一个非常有力的shell环境。写入在VBScript里的脚本有同样的风险,因为它们做了你告知的事,就如它们也将做你告知的事。但发送命令时,没有撤销按钮或者退回命令。简单来说,这个命令假定知道你要做什么。同样,权限也是远程Hyper-V服务器需要关注的问题。更多信息可以参照技巧:Hyper-V的权限模式。

总结

要自动化Hyper-V环境要素,管理员有大量的选择。有了经验和耐心,你就能让Hyper-V与你所创建的PowerShell或VBScripts协调工作。

【编辑推荐】

  1. CIO五项注意 不要给虚拟化留下安全漏洞!
  2. SVM5:存储虚拟化的新强者
  3. 大幅节约成本 桌面虚拟化必将普及

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/290765.html<

(0)
运维的头像运维
上一篇2025-05-19 09:13
下一篇 2025-05-19 09:14

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注