求优化PowerShell脚本:高效获取Azure应用服务名称、主机名及入站IP
优化Azure应用服务信息获取的PowerShell脚本
你的脚本执行慢的核心原因是重复发起不必要的Azure API请求,以下是优化后的高效实现:
优化后的脚本
# 一次性获取所有Azure应用服务信息 $allWebApps = Get-AzWebApp # 遍历每个应用服务,直接提取所需属性 foreach ($webApp in $allWebApps) { [PSCustomObject]@{ 应用服务名称 = $webApp.Name 资源组名称 = $webApp.ResourceGroup 主机名 = $webApp.DefaultHostName 入站IP地址 = $webApp.InboundIpAddress } }
原脚本的问题分析
- 重复调用
Get-AzWebApp:你已经在开头获取了所有应用服务数据,但循环内部又两次调用Get-AzWebApp,每次都会重新从Azure拉取全量数据,这是最影响性能的点 - 冗余的
Get-AzResource调用:Get-AzWebApp返回的对象本身就包含ResourceGroup、DefaultHostName、InboundIpAddress这些属性,完全不需要再用Get-AzResource重复获取资源
优化效果说明
优化后的脚本只发起一次Get-AzWebApp请求,之后直接在本地遍历对象提取属性,避免了大量重复的API调用,执行速度会有量级的提升。
内容的提问来源于stack exchange,提问作者user770022
相关产品推荐
相关产品推荐

