检查Azure资源组是否存在 - Azure Powershell

时间:2016-06-02 17:07:54

标签: powershell azure-resource-manager azure-powershell

我正在尝试验证ResourceGroup是否存在所以我认为以下代码应返回true或false,但它不会输出任何内容。

SELECT title, 
       cid 
FROM   subscribes 
WHERE  cid IN (SELECT cid 
               FROM   subscribes 
               GROUP  BY cid 
               HAVING Count(cid) = 1); 

为什么我没有得到任何输出?

4 个答案:

答案 0 :(得分:17)

有一个Get-AzureRmResourceGroup cmdlet:

Get-AzureRmResourceGroup -Name $myResourceGroupName -ErrorVariable notPresent -ErrorAction SilentlyContinue

if ($notPresent)
{
    # ResourceGroup doesn't exist
}
else
{
    # ResourceGroup exist
}

答案 1 :(得分:2)

试试这个

$ResourceGroupName = Read-Host "Resource group name"
Find-AzureRmResourceGroup | where {$_.name -EQ $ResourceGroupName}

答案 2 :(得分:0)

我也在寻找相同的东西,但是我的场景中还有一个附加条件。

所以我想通了。要获取方案详细信息follow

$rg="myrg"
$Subscriptions = Get-AzSubscription
$Rglist=@()
foreach ($Subscription in $Subscriptions){
$Rglist +=(Get-AzResourceGroup).ResourceGroupName
}
$rgfinal=$rg
$i=1
while($rgfinal -in $Rglist){
$rgfinal=$rg +"0" + $i++
}
Write-Output $rgfinal
Set-AzContext -Subscription "Subscription Name"
$createrg= New-AzResourceGroup -Name $rgfinal -Location "location"

答案 3 :(得分:0)

我是PS新手,我正在寻找解决此问题的方法。

我没有直接在SO上搜索,而是尝试使用PS帮助自己进行调查(以获得关于PS的更多经验),然后我想出了一个可行的解决方案。 然后,我搜索了SO,以了解如何将其与专家的答案进行比较。 我想我的解决方案不太优雅,但更紧凑。我在这里举报,以便其他人发表意见:

if (!(Get-AzResourceGroup $rgname -ErrorAction SilentlyContinue))
   { "not found"}
else
   {"found"}

我的逻辑的解释:我分析了Get-AzResourceGroup输出,发现它是具有找到的Resource groups元素的数组,或者如果没有找到组则为null。我选择了not(!)格式,该格式稍长一些,但可以跳过else条件。最常见的是,如果资源组不存在,我们只需要创建它,而如果资源组已经存在,则不执行任何操作。