首页 > 解决方案 > “az ad sp credential list”命令输出“enddate”到标准日期格式转换

问题描述

我正在尝试使用 Az cli 获取有关 Azure AD SPN 凭据到期日期的报告。

我可以使用 Az cli“az ad sp credential list”获取报告,但无法进行日期转换。


az ad sp credential list --id xxxxxx-xxx-xxx-xx  --query '[].{Key:customKeyIdentifier,expirydate:endDate}' -o table

output:

Expirydate                        Key
--------------------------------  ---------------
2299-12-30T23:00:00+00:00         Test
2020-01-10T13:13:12.647000+00:00  Qa
2299-12-30T16:00:00+00:00         Dev

有没有办法将到期日期输出转换为标准日期

即 2299-12-30T23:00:00+00:00 -> 30-12-2299

有什么建议吗?提前致谢。

标签: azure-cliazure-cli2

解决方案


我无法找到使用azcli 本身的方法,但这是一个使用的解决方案jq

az ad sp credential list --id <sub-id> | jq -r \ '["Expiry Date", "Key"], ["-----------", "---"], (.[] | [(.endDate | (sub("\\.[0-9]+\\+"; "+") | strptime("%Y-%m-%dT%H:%M:%S%z") | mktime | strftime("%d-%m-%Y"))), .customKeyIdentifier // "-"]) | @tsv'

和扩展版本,看看发生了什么

az ad sp credential list --id <sub-id> | jq -r \
'
["Expiry Date", "Key"],
["-----------", "---"],
(.[] | [
  (
    .endDate | 
    (
      sub("\\.[0-9]+\\+"; "+") | 
      strptime("%Y-%m-%dT%H:%M:%S%z") | 
      mktime | 
      strftime("%d-%m-%Y")
    )
  ),
  .customKeyIdentifier // "-"
]) |
@tsv
'

推荐阅读