从哈希表转换为Json
我需要一些帮助。 我需要以下一种格式将IIS证书列表导出到json:从哈希表转换为Json,json,powershell,Json,Powershell,我需要一些帮助。 我需要以下一种格式将IIS证书列表导出到json: { "Certificate.FriendlyName1":{ "daysleft":"33" }, "Certificate.FriendlyName2":{ "daysleft":"67" }, "Certificate.FriendlyName3":{ "daysleft":"12" } } 现在我尝试使用下一个代码: $sites = Get-Website | ? {
{
"Certificate.FriendlyName1":{
"daysleft":"33"
},
"Certificate.FriendlyName2":{
"daysleft":"67"
},
"Certificate.FriendlyName3":{
"daysleft":"12"
}
}
现在我尝试使用下一个代码:
$sites = Get-Website | ? { $_.State -eq "Started" } | % { $_.Name }
$certs = Get-ChildItem IIS:SSLBindings | ? {
$sites -contains $_.Sites.Value
} | % { $_.Thumbprint }
$certificate = Get-ChildItem CERT:LocalMachine/My | ? {
$certs -contains $_.Thumbprint
}
$data = [PsCustomObject]@{
$certificate.FriendlyName = @{
daysleft = ($certificate.NotAfter).subtract([DateTime]::Now).days}
}
Convertto-json $data
但是获得下一个输出
{
"System.Object[]": {
"daysleft": [
1775,
574
]
}
}
如何从JSON输出中的哈希表变量(如数组成员)中获取数据?谢谢。您需要逐个添加每个证书条目:
# grab the matching certificates
$certificates = Get-ChildItem CERT:LocalMachine/My | ? {
$certs -contains $_.Thumbprint
}
# create hashtable to hold the data
$data = @{}
foreach($certificate in $certificates){
# add each cert one by one
$data[$certificate.FriendlyName] = @{
daysleft = $certificate.NotAfter.Subtract([DateTime]::Now).days
}
}
ConvertTo-Json $data
您需要逐个添加每个证书条目:
# grab the matching certificates
$certificates = Get-ChildItem CERT:LocalMachine/My | ? {
$certs -contains $_.Thumbprint
}
# create hashtable to hold the data
$data = @{}
foreach($certificate in $certificates){
# add each cert one by one
$data[$certificate.FriendlyName] = @{
daysleft = $certificate.NotAfter.Subtract([DateTime]::Now).days
}
}
ConvertTo-Json $data
非常感谢。这就是我需要的,谢谢。这就是我需要的。