【问题标题】:Azure Powershell VM Stopped status in variable变量中的 Azure Powershell VM 停止状态
【发布时间】:2020-04-24 20:26:59
【问题描述】:

我正在尝试编写一个 PowerShell 脚本,该脚本将在我的资源组中查找关闭的虚拟机并取消分配它们。当我尝试将以下脚本分配为变量时,以下脚本的输出没有给我 VM 名称“clean”。最终结果是执行 Stop-AzureRmVM -ResourceGroupName LAB -Name $VM -force

因此,对于更多上下文,假设 AVGJOE-DC1 处于停止状态,我在 Azure Powershell 中运行以下行,它将显示

Name
----
AVGJOE-DC1

如果我尝试使用 $VM 来调用 AVGJOE-DC1 中的

Stop-AzureRmVM -ResourceGroupName LAB -Name $VM -force 

由于变量被设置为更长的字符串而失败,例如 MicroSoftComputerResource\Resourcegroup[@Name=AVGJOE-DC1].
希望这是有道理的。

  $VM = Get-AzureRmVM -ResourceGroupName LAB | get-azurermvm -Status | ?{$_.statuses.displaystatus -eq "VM stopped"} | select name 

【问题讨论】:

  • 您能否澄清一下,并举例说明您的意思是它没有给您 VM 名称“干净”?
  • 添加了更多上下文,希望对您有所帮助。
  • select name 给你一个 object 属性为name。如果您想要该属性的字符串 VALUE,请使用 Select-Object -ExpandProperty name

标签: powershell azure-functions


【解决方案1】:

就像@Theo 在评论中所说,select name 为您提供了一个具有name 属性的对象。如果你想要name属性的字符串value,可以使用Select-Object -ExpandProperty name代替select name

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多