首页 > 解决方案 > Get-AzSnapshot:无法将“System.Object []”转换为参数所需的类型“System.String”不支持指定的方法

问题描述

我的要求是删除超过 7 天且名称为appname-的快照。但在删除之前,我需要获取一些名称的快照数据。该脚本最初执行并提供一些快照数据,但在中间出现错误。有人可以帮我解决这个问题。为什么我收到此错误消息以及如何解决

==================================================== ========================

Get-AzSnapshot:无法将“System.Object[]”转换为参数“ResourceGroupName”所需的类型“System.String”。不支持指定的方法。在 line:6 char:39 + Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotNam ... + ~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get- AzSnapshot],ParameterBindingException

+fullyQualifiedErrorId:CannotConvertArgument、Microsoft.Azure.Commands.Compute.Automation.GetAzureRmSnapshot

$snapshotnames = (Get-AzSnapshot).Name

foreach($snapname in $snapshotnames)
{
    $resourceGroupName = (Get-AzResource -Name $snapname).ResourceGroupName
    Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapname  | Where-Object {($_.TimeCreated -eq (Get-Date).AddDays(-3))} <#-and ($_.Name -like '*-2019_*') } | select Name,TimeCreated -Verbose 

}

标签: azurepowershell

解决方案


(Get-AzResource -Name $snapname).ResourceGroupName

这将返回一个Microsoft.Azure.Commands.ResourceManager.Cmdlets.SdkModels.PSResource对象集合,每个对象都有ResourceGroupName属性。您需要添加逻辑来过滤$resourceGroupName变量以仅包含您要查找的变量。


推荐阅读