如何将过滤器与 az ad 应用程序一起使用进行批量删除

Der*_*rek 5 azure azure-active-directory azure-cli

我正在尝试使用 AZ AD CLI 删除许多具有类似属性的应用程序。我找不到任何好的例子--filter

试图做这样的事情:

ad az app list --filter (displayName like 'stack') | ad az app delete
Run Code Online (Sandbox Code Playgroud)

任何指针都非常感谢。

Roh*_*gal 7

您可以使用--filter这样的

az ad app list --filter "startswith(displayName,'MyCommonPattern')"
Run Code Online (Sandbox Code Playgroud)

上面提到的命令可能会在输出中为您提供相当多的 json。

你可以把它归结为 appIds 或任何你需要使用的--query东西

az ad app list --filter "startswith(displayName,'RohitCommonPattern')" --query '[].appId'
Run Code Online (Sandbox Code Playgroud)

样本输出

[
  "b5exxxc4-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "f13xxxa5-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
]
Run Code Online (Sandbox Code Playgroud)

我已经使用了这个示例,startswith但您也可以使用其他运算符,例如eqany对于集合,逻辑运算符,例如and, or。请查看与 Azure AD Graph API 相关的链接以获取更多示例。

我尝试过但可能不支持的另一件事是 contains

更多信息

  • --filter根据 Microsoft Docs - az ad app list接受 OData 过滤器
  • Azure AD Graph API 可能会在幕后用于处理应用程序列表,因此我想您可以从此处阅读有关过滤和示例的信息。支持的查询选项 - Azure AD Graph API
  • 这是一个通用规范,尽管并非所有内容都可以在幕后实现。

    注意:我特意提到了较旧的 Azure AD Graph APIhttps://graph.windows.net而不是较新的 Microsoft Graph API,https://graph.microsoft.com因为与应用程序相关的 API 仍处于 Microsoft Graph API 的测试阶段。