azure 如何 使用 过滤 器 与 az 广告 应用 程序 做 批量 删除

rks48beu  于 2022-11-17  发布在  其他
关注(0)|答案(3)|浏览(113)

我正在尝试使用AZ AD CLI删除许多带有类似属性的应用程序。我在--filter上找不到任何好的示例
尝试执行以下操作:

ad az app list --filter (displayName like 'stack') | ad az app delete

非常感谢您的指点。

8yparm6h

8yparm6h1#

可以像这样使用--filter

az ad app list --filter "startswith(displayName,'MyCommonPattern')"

上面提到的命令可能会在输出中给予你相当多的json。
您可以像这样使用--query将其简化为appId或任何您需要的内容

az ad app list --filter "startswith(displayName,'RohitCommonPattern')" --query '[].appId'

输出示例

[
  "b5exxxc4-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "f13xxxa5-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
]

我已经使用startswith展示了这个示例,但您也可以使用其他运算符,如eqany表示集合,使用逻辑运算符,如andor。请查看Azure AD图形API相关链接以了解更多示例。
我尝试过的另一个可能不受支持的功能是contains

详细信息

  • --filter根据Microsoft Docs接受OData筛选器- az广告应用程序列表
  • Azure AD Graph API可能会在后台使用,以处理应用程序列表,所以我想您可以从这里阅读有关过滤和示例的信息。
  • 这里是一个通用的规范,尽管不是所有的东西都可以在幕后实现。

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

1yjd4xko

1yjd4xko2#

为了从Rohit的完美答案中继续执行这个步骤,我添加了一个快速BASH脚本来完成我的循环:

for fn in `az ad app list --filter "startswith(displayName, 'Azure Stack')" --query '[].appId'`; do az ad app delete --id $fn; done
qnyhuwrf

qnyhuwrf3#

Rohit有正确的理解和命令行语法,但在最新的AZ CLI中,查询之间的间距很重要。
以后,应该这样写:

az ad app list --filter "startswith(displayName, 'MyCommonPattern')"

相关问题