【问题标题】:How to check particular VMware VM is not currently running in the task using PowerShell?如何使用 PowerShell 检查当前未在任务中运行的特定 VMware VM?
【发布时间】:2018-11-30 13:20:29
【问题描述】:

我需要检查特定的 VMware VM 当前是否在最近的任务中,例如 CLone_task、Migrate_VMTask 等,并在 VM 迁移开始之前跳过该 VM。

我试过下面的代码:

PS> Get-Task (Get-VM -Name VM1) |选择州 Get-Task:无法绑定参数“状态”。无法转换“nalb00cava3” “VMware.VimAutomation.ViCore.Impl.V1.Inventory.VirtualMachineImpl”类型的值 键入“VMware.VimAutomation.Sdk.Types.V1.TaskState”。 在行:1 字符:10 + 获取任务 (Get-VM -Name nalb00cava3) |选择州 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-Task], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetTask

【问题讨论】:

  • Get-Task's documentation 表明该命令似乎没有接受 VM 的参数。
  • 所以无法获取特定 VM 的任务? @Ansgar Wiechers

标签: powershell vmware powercli


【解决方案1】:

这应该可以满足您的需求,最终管道是您定义特定 VM 的位置。

Get-Task | ?{$_.ObjectId -match 'VirtualMachine'} | Select @{N='VM';E={(Get-View -Id $_.ObjectId).Name }},State,Description | where  {$_.VM -eq "VM1"}

它过滤来自 Get-Task 的 ObjectId,然后引用 Id,确定 VM 名称,最后过滤您定义的 VM。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 2015-04-30
    • 2017-08-27
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    相关资源
    最近更新 更多