我正在尝试使用AZ AD CLI删除许多带有类似属性的应用程序。我在--filter上找不到任何好的示例尝试执行以下操作:
--filter
ad az app list --filter (displayName like 'stack') | ad az app delete
非常感谢您的指点。
8yparm6h1#
可以像这样使用--filter
az ad app list --filter "startswith(displayName,'MyCommonPattern')"
上面提到的命令可能会在输出中给予你相当多的json。您可以像这样使用--query将其简化为appId或任何您需要的内容
--query
az ad app list --filter "startswith(displayName,'RohitCommonPattern')" --query '[].appId'
输出示例
[ "b5exxxc4-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "f13xxxa5-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ]
我已经使用startswith展示了这个示例,但您也可以使用其他运算符,如eq、any表示集合,使用逻辑运算符,如and、or。请查看Azure AD图形API相关链接以了解更多示例。我尝试过的另一个可能不受支持的功能是contains
startswith
eq
any
and
or
contains
详细信息
注意:我特意提到了较旧的Azure AD图形API https://graph.windows.net,而不是较新的Microsoft图形API https://graph.microsoft.com,因为与应用程序相关的API仍处于Microsoft图形API的测试阶段。
https://graph.windows.net
https://graph.microsoft.com
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
qnyhuwrf3#
Rohit有正确的理解和命令行语法,但在最新的AZ CLI中,查询之间的间距很重要。以后,应该这样写:
az ad app list --filter "startswith(displayName, 'MyCommonPattern')"
3条答案
按热度按时间8yparm6h1#
可以像这样使用
--filter
上面提到的命令可能会在输出中给予你相当多的json。
您可以像这样使用
--query
将其简化为appId或任何您需要的内容输出示例
我已经使用
startswith
展示了这个示例,但您也可以使用其他运算符,如eq
、any
表示集合,使用逻辑运算符,如and
、or
。请查看Azure AD图形API相关链接以了解更多示例。我尝试过的另一个可能不受支持的功能是
contains
详细信息
--filter
根据Microsoft Docs接受OData筛选器- az广告应用程序列表注意:我特意提到了较旧的Azure AD图形API
https://graph.windows.net
,而不是较新的Microsoft图形APIhttps://graph.microsoft.com
,因为与应用程序相关的API仍处于Microsoft图形API的测试阶段。1yjd4xko2#
为了从Rohit的完美答案中继续执行这个步骤,我添加了一个快速BASH脚本来完成我的循环:
qnyhuwrf3#
Rohit有正确的理解和命令行语法,但在最新的AZ CLI中,查询之间的间距很重要。
以后,应该这样写: