我正在尝试删除许多具有AZ AD CLI相似属性的应用程序。
我在--filter
尝试执行以下操作:
ad az app list --filter (displayName like 'stack') | ad az app delete
非常感谢任何指针。
答案 0 :(得分:2)
您可以像这样使用--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
的示例,但是您可以使用eq
,any
等其他运算符进行集合,而使用and
,{{1}等逻辑运算符}。请查看与Azure AD Graph API相关的链接以获取更多示例。
我尝试过但又可能不受支持的另一件事是or
更多信息
contains
根据Microsoft Docs接受OData过滤器-az ad app list 这是一个通用规范,尽管并非所有事情都可以在幕后实现。
注意:我有意提到较旧的Azure AD Graph API --filter
,而不是较新的Microsoft Graph API https://graph.windows.net
,因为与应用程序相关的API仍处于Microsoft Graph API的测试版中。
答案 1 :(得分:0)
要从Rohit的字面上完美的答案中解决这个问题,我添加了一个快速的BASH脚本来完成循环:
for fn in `az ad app list --filter "startswith(displayName, 'Azure Stack')" --query '[].appId'`; do az ad app delete --id $fn; done