使用PowerShell提取Azure AD应用程序代理应用程序列表
4.8(96.67%) 投票[s]

最近在Azure AD应用代理(App Proxy)部署项目中,我被要求提供一份登录到应用程序代理的应用程序列表。即客户端需要内部URL,应用程序的外部URL和显示名称。通常有两种方法。一种方法是手动将它们导出到csv文件中,或者:自动化它!如果应用程序很少,然后手动导出它们不会花那么长时间,但长期的解决方案是将其自动化。

这就是我想要利用PowerShell的力量的地方。不幸的是,没有一个PowerShell Cmdlet可以为我们提供应用程序代理应用程序列表。所以,在联机进行了一些研究并测试了PowerShell Cmdlet之后,我来到了这个脚本的最终版本,它使用Azure AD PowerShell连接来检索结果。

这里的PowerShell脚本分为三个部分。

  • 函数(检查与Azure PowerShell的连接)
  • 核心脚本
  • 产量

功能:-

  • 此部分将检查用户是否连接到Azure PowerShell
  • 通过使用此功能,我们可以避免与Azure PowerShell和Azure AD MFA(如果启用)请求的多个连接。
### Start of Function to check the Logins###    Function Login-check  {      try       {          $Az = Get-AzureADDomain -ErrorAction Stop       }      catch          {              $Fault = $PSItem.message.exception          }      if ($Az)          {             Write-Host -ForegroundColor青色“用户登录到Azure”}_____________接azuread

核心:

  • 脚本的这一部分将检索到有关带有objectid的Azure AD中所有应用程序的信息
  • 我启动了一个计数器,以便我们可以看到脚本正在处理哪个应用程序
  • 我循环这些应用程序,并检查它们是否已登录到应用程序代理
  • 对于那些没有登录到app-proxy的应用程序,PowerShell cmdlet给出一个捕获到的错误
  • 我在循环中定义了一个空变量来捕获所有必需的信息
###开始核心脚本登录检查$app=get azureadapplication-所有$true选择对象显示名称,objectid$i=1$app proxy_list=@()$count=$app.count foreach($app中的应用程序)写入进度-活动“获取$($apps.displayname)应用程序代理信息”-状态“$i,共$count”-完成百分比($i/$count*100)$proxy=get azureadapplicationproxyapplication-objectid“$($apps.objectid)”-停止160160160160160\\35\\35\35\35;\\\\35\160\160\\\\\\160\\\\\\\\\\\\\\\160;_$result=””| Select-Object DisplayName,ObjectId,InternalUrl,ExternalUrl              $result.DisplayName = $($apps.Displayname)              $result.ObjectId = $($apps.Objectid)              $result.InternalUrl = $($proxy.InternalUrl)              $result.ExternalUrl = $($proxy.ExternalUrl)              $Appproxy_List += $result            } #End of Try Statement        catch {                  $Problem = $PSItem.exception.message                       } #End of Catch statement      $i++  } #End of Foreach loop  ### End of Core ###

输出:

  • 我定义了一个保存输出的保存目录。
  • 我用日期和时间定义了文件名。
  • 脚本将创建一个不存在的目录,否则它将把文件保存在目录中。
  • 最后,我们将输出为csv文件导出到指定的路径。
$SavingDirectory = "C:\Temp\"if((测试路径-路径$savingdirectory)-eq$false)new item-itemtype directory-路径$savingdirectory out空$filepath=$savingdirectory+“应用代理应用程序列表主副本”+””+ (Get-Date格式“dd / MM / yyyy_HH.mm.ss”) + . csv”$Appproxy_List | Export-Csv -Path $Filepath -NoTypeInformation  ##### End of Script##########################################################################

伙计们,如果您愿意,可以在我的这里是GitHub的公开回购.

享受!

类别:
动力壳
标签:

留下答复