【问题标题】:Get a list of all Resources in my Azure Subscription (Powershell Preferably)获取我的 Azure 订阅中所有资源的列表(最好是 Powershell)
【发布时间】:2013-07-09 04:13:56
【问题描述】:

我有一个 azure 订阅,我正在尝试编写一个 powershell 脚本来自动获取我目前在订阅中拥有的所有资源(VM、存储帐户、数据库等)的列表。有没有办法使用 azure 管理 REST API 或 Azure Cmdlet 来做到这一点?

【问题讨论】:

标签: powershell azure azure-sql-database cmdlets


【解决方案1】:

如果您使用的是新的资源管理器模型(2014 年推出),您可以使用以下 PowerShell 脚本。

Login-AzureRmAccount
Get-AzureRmResource | Export-Csv "c:\Azure Resources.csv"

要使用资源管理器 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

对于有多个订阅的用户: 如果要输出多个订阅的内容,则需要先调用 Select-AzureRmSubscription 切换到另一个订阅,然后再调用 Get-AzureRmResource。

【讨论】:

    【解决方案2】:

    我不认为只有一个函数(或 PS Cmdlet)可以获取所有这些信息。但是,这些中的每一个都可以通过Windows Azure Service Management REST APIWindow Azure PowerShell Cmdlets 获取。

    Windows Azure 服务管理 REST APIhttp://msdn.microsoft.com/en-us/library/windowsazure/ee460799.aspx。例如,如果您想在订阅中列出存储帐户,您可以使用:http://msdn.microsoft.com/en-us/library/windowsazure/ee460787.aspx

    Windows Azure PowerShell Cmdlethttp://msdn.microsoft.com/en-us/library/jj554330.aspx。同样,如果您想在订阅中列出存储帐户,可以使用:http://msdn.microsoft.com/en-us/library/dn205168.aspx

    【讨论】:

    • 谢谢。是的,这就是我目前正在做的事情。问题是似乎没有办法为我的订阅获取所有 SQL 数据库
    • 有没有提供所有资产信息的API?
    • 我刚刚回答了您的问题:stackoverflow.com/questions/39102044/…。 HTH。
    【解决方案3】:

    嗯, 您可以更新 AzurePowershell 的版本并执行此命令。

    Get-AzureResource
    

    在输出中,您可以检查“ResourceType”。 它包含有关在 azure 上创建的资源类型的信息。

    【讨论】:

      【解决方案4】:

      添加到@Gaurav 的答案(以及与您对 SQL 数据库枚举的评论相关):您可以通过几个简单的步骤在每个服务器的基础上枚举所有数据库。

      首先,枚举订阅中的所有 SQL 数据库服务器:

      然后,为每个服务器创建一个连接上下文并枚举数据库。请注意,使用 Get-Credentials cmdlet 时,系统会提示我通过弹出窗口输入用户名 + 密码,此处未显示。出于演示目的,我创建了一个全新的服务器,只有一个主数据库,以显示输出的样子:

      【讨论】:

      • 谢谢。是的,我使用这种方法遇到的问题是弹出凭据提示的问题会阻止我使流程自动化。想知道是否有办法解决这个问题。
      • 您见过this blog postthis post 使用避免弹出窗口的技术吗?
      • 哦,谢谢。那可以工作。天蓝色是否存储所有服务器的凭据?因为当我进入 azure 门户的数据库选项卡时,它会显示所有服务器上所有数据库的列表,而不要求我为每个服务器提供凭据
      • 我希望您已经复制了控制台输出并将其放入代码标签中,而不是上传图像。然后我们可以使用复制和粘贴。
      • @AranMulholland - 我在 五年前 发布了这个(太老了,Azure 是 Windows Azure,SQL 数据库是 SQL Azure)。我制作了屏幕截图,不仅显示了命令,还显示了输出的呈现方式。 5 年前,在发布屏幕截图和内联代码方面确实没有太多(如果有的话)指导。所以是的,发布内联代码会很有帮助。但奇怪的是在 5 年后听到这件事。
      【解决方案5】:

      此示例演示如何通过证书身份验证通过 Powershell 自动获取所有资源(VM、存储帐户、数据库、应用服务)和状态的列表。

      https://gallery.technet.microsoft.com/Access-Azure-resource-data-ca9cc9f7

      【讨论】:

        【解决方案6】:

        我知道它已经得到答复,但是我发现 Get-AzResource 命令易于使用,并且可以从特定订阅中获取所有资源。尝试将它与“ft”一起使用以获得干净的文本

        获取-AzResource |英尺

        Screenshot

        【讨论】:

        • 感谢@EZR 用新信息更新线程! :) 请将图片附在帖子中,以防万一将来网址中断。
        【解决方案7】:

        既然你说 PowerShell “最好”,我会假设其他选项可能仍然有用?您可以转到http://portal.azure.com,然后单击菜单图标(三个水平线),然后单击所有资源。然后在页面顶部,您可以单击“导出为 CSV”并在 Excel 中打开它。

        您必须花 30 秒的时间在 Excel 中进行一些清理,但对于我现在正在尝试做的事情,这绝对是最好和最快的解决方案。我希望它对您(或其他人)也有用。

        【讨论】:

        • 该链接不再有效,仅仅 6 年后 ;) 有人有更新的链接吗?
        • @AlexanderSkwar 我更新了答案以匹配当前站点。干杯。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-04
        • 2016-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-11
        相关资源
        最近更新 更多