“ az ad sp凭证列表”命令将“ enddate”输出到标准日期格式转换

时间:2019-08-06 13:44:03

标签: azure-cli azure-cli2

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

我能够使用Az cli“ az ad spredential 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

有什么建议吗? 预先感谢。

1 个答案:

答案 0 :(得分:0)

我无法找到使用az cli本身的方法,但这是使用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
'