【发布时间】: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