变量中的Azure Powershell VM已停止状态
我正在尝试编写一个PowerShell脚本,该脚本将在我的资源组中查找关闭的VM并解除分配它们。当我尝试将下面的tp赋值为变量时,下面脚本的输出没有给我VM名称“clean”。最终结果是执行Stop AzureRmVM-ResourceGroupName LAB-Name$VM-force 因此,对于更多的上下文,让我们假设AVGJOE-DC1处于停止状态,我在Azure Powershell中运行下面的行,它将显示变量中的Azure Powershell VM已停止状态,powershell,azure-functions,Powershell,Azure Functions,我正在尝试编写一个PowerShell脚本,该脚本将在我的资源组中查找关闭的VM并解除分配它们。当我尝试将下面的tp赋值为变量时,下面脚本的输出没有给我VM名称“clean”。最终结果是执行Stop AzureRmVM-ResourceGroupName LAB-Name$VM-force 因此,对于更多的上下文,让我们假设AVGJOE-DC1处于停止状态,我在Azure Powershell中运行下面的行,它将显示 Name ---- AVGJOE-DC1 如果我尝试使用$VM在 Stop-
Name
----
AVGJOE-DC1
如果我尝试使用$VM在
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
正如@Theo在评论中所说,
selectname
为您提供了一个属性为name
的对象。如果需要名称属性的字符串值
,可以使用选择对象-扩展属性名称
而不是选择名称
您能否澄清一下,并举例说明它没有给您VM名称“clean”是什么意思?添加了更多的上下文,希望能有所帮助。
select name
为您提供了一个属性为name
的对象。如果需要该属性的字符串值,请使用Select Object-ExpandProperty name