【发布时间】:2021-01-15 05:04:24
【问题描述】:
在下面运行它,似乎无法正确地将集合传递到 ForEach 循环中,即使它返回了我想要的名称。 $RGInfo 按预期返回。但是当我将它传递到 Set-AzureRmResourceGroup 的循环中时,它会出现如下错误
PS H:\> $rginfo
ResourceGroupName
-----------------
rg-crp-d365-bp-n
rg-crp-d365-dev1-n
rg-crp-d365-dev2-n
rg-crp-d365-upgrad-n
$RGInfo = Get-AzureRmResourceGroup | Where-Object {$_.ResourceGroupName -like "RG-CRP-D365*" } | Select-Object ResourceGroupName
ForEach ($RGName in $RGInfo) {
If ($RGName.Tags -eq $null) {
Set-AzureRmResourceGroup -ResourceGroupName $RGName -Tag @{BUSINESS_UNIT="CRP"; COST_CENTER="6435" }
}
}
知道为什么我不断收到以下信息吗?有四个 RG,所以 ForEach 循环是有效的。
Set-AzureRmResourceGroup:“resourceGroupName”与预期不匹配 模式'^[-\w._()]+$'。在行:7 字符:2 + 设置-AzureRmResourceGroup -ResourceGroupName $RGName -Tag @{BUSINESS_ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Set-AzureRmResourceGroup], ValidationException + FullyQualifiedErrorId:Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetA
zureResourceGroupCmdlet Set-AzureRmResourceGroup : “resourceGroupName”与预期的模式“^[-\w._()]+$”不匹配。 在行:7 字符:2 + 设置-AzureRmResourceGroup -ResourceGroupName $RGName -Tag @{BUSINESS_ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Set-AzureRmResourceGroup], ValidationException + FullyQualifiedErrorId:Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetA
zureResourceGroupCmdlet Set-AzureRmResourceGroup : “resourceGroupName”与预期的模式“^[-\w._()]+$”不匹配。 在行:7 字符:2 + 设置-AzureRmResourceGroup -ResourceGroupName $RGName -Tag @{BUSINESS_ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Set-AzureRmResourceGroup], ValidationException + FullyQualifiedErrorId:Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetA
zureResourceGroupCmdlet Set-AzureRmResourceGroup : “resourceGroupName”与预期的模式“^[-\w._()]+$”不匹配。 在行:7 字符:2 + 设置-AzureRmResourceGroup -ResourceGroupName $RGName -Tag @{BUSINESS_ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Set-AzureRmResourceGroup], ValidationException + FullyQualifiedErrorId:Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetA
zureResourceGroupCmdlet
【问题讨论】:
-
If ($RGName.Tags -eq $null)- 这个检查没有意义,因为你没有传递标签,所以它总是正确的。至于错误我不知道,请尝试调试。或执行以下操作:$rgname就在set-azurermresourcegroup之前