我有一个azure订阅,我正在尝试编写一个powershell脚本来自动获取我目前在订阅中拥有的所有资源(虚拟机,存储帐户,数据库等)的列表。有没有办法使用azure管理REST API或Azure Cmdlet执行此操作?
答案 0 :(得分:8)
如果您使用的是新的资源管理器模型(2014年推出),则可以使用以下PowerShell脚本。
Login-AzureRmAccount
Get-AzureRmResource | Export-Csv "c:\Azure Resources.csv"
要使用Resource Manager PowerShell命令,您需要AzureRM PowerShell模块(https://docs.microsoft.com/en-us/powershell/azure/install-azurerm-ps)。
Install-Module AzureRM
有关资源管理器和经典模型之间差异的详细信息,请参阅https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-deployment-model。
对于有多个订阅的用户: 如果要输出多个订阅的内容,则需要在调用Get-AzureRmResource之前调用Select-AzureRmSubscription切换到另一个订阅。
答案 1 :(得分:4)
我认为只有一个函数(或PS Cmdlet)可以获取所有这些信息。但是,每个都可以通过Windows Azure Service Management REST API
和Window Azure PowerShell Cmdlets
获取。
Windows Azure服务管理REST API :http://msdn.microsoft.com/en-us/library/windowsazure/ee460799.aspx。例如,如果要在订阅中列出存储帐户,可以使用以下命令:http://msdn.microsoft.com/en-us/library/windowsazure/ee460787.aspx
Windows Azure PowerShell Cmdlet :http://msdn.microsoft.com/en-us/library/jj554330.aspx。同样,如果您要在订阅中列出存储帐户,请使用以下命令:http://msdn.microsoft.com/en-us/library/dn205168.aspx。
答案 2 :(得分:3)
阱, 您可以更新AzurePowershell的版本并执行此命令。
Get-AzureResource
在输出中,您可以检查“ResourceType”。 它包含有关天蓝色资源创建类型的信息。
答案 3 :(得分:2)
添加到@ Gaurav的答案(与您对SQL数据库枚举的评论相关):您可以通过几个简单的步骤,基于每个服务器枚举所有数据库。
首先,枚举订阅中的所有SQL数据库服务器:
然后,为每个服务器创建连接上下文并枚举数据库。请注意,使用Get-Credentials cmdlet时,系统会提示我通过弹出窗口输入用户名+密码,我在此处未显示。出于演示目的,我创建了一个全新的服务器,只有一个主数据库,以显示输出的样子:
答案 4 :(得分:2)
此示例演示如何通过证书身份验证通过Powershell自动获取所有资源(VM,存储帐户,数据库,应用程序服务)和状态的列表。
https://gallery.technet.microsoft.com/Access-Azure-resource-data-ca9cc9f7
答案 5 :(得分:1)
我知道已经回答了它,但是我发现Get-AzResource命令易于使用,并且可以从特定订阅中获取所有资源。尝试将其与“ ft”一起使用以获取纯净文本
Get-AzResource |英尺
答案 6 :(得分:0)
既然你说PowerShell "最好是" ,我会假设其他选项仍然有用吗?您可以转到http://manage.windowsazure.com,然后点击所有项目。然后,您可以将表复制/粘贴到Excel中。您必须每页执行一次,但它比运行各种cmdlet更快,更全面。假设您拥有至少几种类型的资源且不超过几页资源。
你需要花30秒钟在Excel中进行一些清理,但是对于我现在正在尝试做的事情,这绝对是最好的&最快解决方案我希望它对你(或其他人)也有用。