从Azure SQL Server名称查找Azure ResourceGroup

问题描述:

我正在尝试编写一个将BACPAC部署到Azure数据库的powershell脚本。我在微软网站上发现这个example从Azure SQL Server名称查找Azure ResourceGroup

我不必问使用Powershell的SQL Server所在的资源组,是否有可能找到SQL服务器驻留的资源组,如果你只知道服务器名称?

试试这个:这样做的

$resourceGroupName = (Get-AzureRmResourceGroup | Get-AzureRmSqlServer | where {$_.ServerName -eq 'Your Server Name Here'}).ResourceGroupName 
+0

没想到你能有重复的服务器名称,但会注意那。感谢你的回答。 –

+0

啊,你对Azure SQL不可能使用的重复名称是正确的。我一定在考虑其他资源类型,其中每个地区或订阅的名称是唯一的。 –

一个快速的方法是使用Find-AzureRmResource cmdlet的。您可以根据需要指定尽可能多的信息(资源组,如名称,资源类型)以缩小搜索结果的范围。

不是真的比任何院长的更好或更差,但使用通用的cmdlet(将任何工作resourceType为):

(Get-AzureRmResource | Where-Object {$_.ResourceType -eq "Microsoft.Sql/servers/databases" -and $_.ResourceName -eq "$svr/$db"}).ResourceGroupName 
+0

为什么要使用Get vs Find?对于部署了许多资源的订阅似乎效率低下。 – CtrlDot

+0

没有任何更好或更坏 - 一个处理客户端(Get),一个处理服务器(Find)... –