我正在嘗試編寫一個將BACPAC部署到Azure數據庫的powershell腳本。我在微軟網站上發現這個example從Azure SQL Server名稱查找Azure ResourceGroup
我不必問使用Powershell的SQL Server所在的資源組,是否有可能找到SQL服務器駐留的資源組,如果你只知道服務器名稱?
我正在嘗試編寫一個將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
一個快速的方法是使用Find-AzureRmResource cmdlet的。您可以根據需要指定儘可能多的信息(資源組,如名稱,資源類型)以縮小搜索結果的範圍。
不是真的比任何院長的更好或更差,但使用通用的cmdlet(將任何工作resourceType爲):
(Get-AzureRmResource | Where-Object {$_.ResourceType -eq "Microsoft.Sql/servers/databases" -and $_.ResourceName -eq "$svr/$db"}).ResourceGroupName
爲什麼要使用Get vs Find?對於部署了許多資源的訂閱似乎效率低下。 – CtrlDot
沒有任何更好或更壞 - 一個處理客戶端(Get),一個處理服務器(Find)... –
沒想到你能有重複的服務器名稱,但會注意那。感謝你的回答。 –
啊,你對Azure SQL不可能使用的重複名稱是正確的。我一定在考慮其他資源類型,其中每個地區或訂閱的名稱是唯一的。 –