我需要在 DNS 解析成功后将 "ip-netmask" 替换为 "fqdn"。
此脚本用于替换配置文件中的值。
如果成功解析了 DNS,我需要将 "ip-netmask" 的属性名称更改为 "fqdn",并在其下存储新的 DNS 值。该脚本会解析 DNS,并仅在成功时更新 ip-netmask 属性,并添加一个 fqdn 属性,其中包含 DNS 值。
看起来我已经接近目标了,但是我无法将 ip-netmask 重命名为 fqdn,也无法删除 ip-netmask 属性而不使我的 fqdn 属性为空。
从原始 JSON 输入开始。
此脚本用于替换配置文件中的值。
如果成功解析了 DNS,我需要将 "ip-netmask" 的属性名称更改为 "fqdn",并在其下存储新的 DNS 值。该脚本会解析 DNS,并仅在成功时更新 ip-netmask 属性,并添加一个 fqdn 属性,其中包含 DNS 值。
看起来我已经接近目标了,但是我无法将 ip-netmask 重命名为 fqdn,也无法删除 ip-netmask 属性而不使我的 fqdn 属性为空。
从原始 JSON 输入开始。
@'
{
"entry":[
{
"@name":"31.170.162.203",
"ip-netmask":"31.170.162.203",
"description":"test1"
},
{
"@name":"37.193.217.222",
"ip-netmask":"37.193.217.222",
"description":"test2"
},
{
"@name":"46.17.63.169",
"ip-netmask":"46.17.63.169",
"description":"test3"
}
]
}
$a = Get-Content 'C:\Users\e\Desktop\puttytest1.json' | ConvertFrom-Json
$a.entry | ForEach-Object {
if ($namehost = (Resolve-DnsName $_.'ip-netmask').namehost) {
$_.'ip-netmask' = $namehost
$_ | Add-Member -MemberType AliasProperty -Name fqdn -Value ip-netmask
}
}
$newjson = $a | ConvertTo-Json
$newjson
输出
{
"entry": [
{
"@name": "31.170.165.68",
"ip-netmask": "31.170.165.68",
"description": "Test1"
},
{
"@name": "31.170.162.203",
"ip-netmask": "31.170.162.203",
"description": "test2"
},
{
"@name": "37.193.217.222",
"ip-netmask": "l37-193-217-222.novotelecom.ru",
"description": "test3",
"fqdn": "l37-193-217-222.novotelecom.ru"
}
]
}