【问题标题】:How to start a VM through Powershell如何通过 Powershell 启动虚拟机
【发布时间】:2013-10-17 20:17:58
【问题描述】:

我正在寻找一种在 Windows Powershell 中自动启动虚拟机的方法。有人对我如何完成这项任务有任何意见吗?

我环顾四周,但到目前为止没有成功找到这样做的方法。

我认为这是一个标准的 cmdlet 形式的 powershell,但我开始认为我的假设是错误的。

我已经研究过使用(如果我理解正确的话)PowerCLI Start-VM 并且有问题说我目前没有连接到服务器,但我不相信我有服务器可以连接(除非我正在以错误的方式思考这个问题)。我现在只是尝试在本地执行此操作,以检查它是否是可以使用的有效 VM。

--- 编辑---

我希望用 VMware 来做这件事,但如果这意味着不花钱的话,我真的可以使用 Windows。

我也在使用 powershell 2.0,但不幸的是,Start-VM 似乎不是我可以使用的选项...

--- 编辑 2 ---

谁能进一步解释 WMI 的工作原理?我使用 powershell 相对较新,以前从未使用过 WMI。

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 您没有提及您使用的是哪种虚拟化解决方案。虚拟机?超V?冼?虚拟盒子?
  • @mikekol - 我在上面编辑了我的问题来回答你的问题......我想指出这类信息会有所帮助......
  • 我实际上写了一个blog post about this。这是用于远程处理、关闭、应用快照和启动它们……你只需要最后一点。这仅在 Server 2008 R2 上使用 Hyper-V 进行了测试,但它可能对您有用。我已经发布了相关位的答案。
  • 您有 vCenter 吗?还是只是 vSphere?
  • @Entbark - 我也没有。我有 Acronis Backup and Recovery、Powershell 4.0 和 Kaseya 来完成我的所有工作。有什么想法吗?

标签: powershell wmi virtual-machine


【解决方案1】:

我上面评论的扩展......这段代码sn-p应该做你需要的:

$VM = gwmi MSVM_ComputerSystem -filter "ElementName='serverName'" -namespace "root\virtualization" -computername "."
$VM.requeststatechange(2)

虽然 WMI 已经过时了(PowerShell 1.0),但它在 Server 2008 R2 上适用于我。您应该添加您正在使用的操作系统。如果您使用的是 Server 2012,那就容易多了。只需使用Start-VM (PowerShell 4.0):

Start-VM –Name VMName

可以说比使用 WMI 容易得多。

【讨论】:

  • 我正在编辑我正在使用的 powershell 版本(即 2.0)。不幸的是,我不相信 Start-VM 对我来说是一个选择。 WMI 会是我唯一的选择吗?
  • 您也可以使用 CodePlex 的 PSHyper-V 模块。它为您包装了很多 WMI 内容。 pshyperv.codeplex.com
  • @tnw - 您能否通过详细说明您对脚本的操作来帮助我?我对 PS 脚本非常陌生,尤其是使用 WMI,而且我不太了解您在使用参数做什么。
  • @tnw - 我还想问一下 Start-VM 是否仅在 Powershell 4.0 中可用(如在 Windows 7 上)?我在这里环顾四周searchservervirtualization.techtarget.com/photostory/2240178466/…,这似乎是可行的。但是,在将我的 Powreshell 更新到 4.0 之后,似乎仍然无法使用。我检查了它是否更新到正确的版本并且它已经更新了。有什么想法吗?
  • Start-VM 是来自 VMware 的 PowerCLI 管理单元的 cmdlet。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-09
  • 1970-01-01
  • 2013-08-29
  • 2011-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多