I'm attempting to convert a PowerShell Here-String to a Json file. This is a sample size of what I need to convert. I will be needing to convert a few dozen override files that can be quite long and doing this manually is not how I want to accomplish this.
$a = @'
override['abc_os_config']['local_administrators']['default_administrators']['abc.com'] = %w {}
override['abc_os_config']['local_administrators']['default_administrators']['devad.abc.com'] = %w {}
override['abc_os_config']['local_administrators']['default_administrators']['qad.abc.com'] = %w {}
override['CIS_Remediation_Windows']['security_options']['lanman_authentication_level'] = 3
'@
$b = $a.Replace('override', '').Replace("'", '').Replace('[', '\').Replace(']', '').Replace(' =',':')
$b.Split('\') | ConvertTo-Json -Depth 100
What is generated:
[
"",
"abc_os_config",
"local_administrators",
"default_administrators",
"abc.com: %w {}\n",
"abc_os_config",
"local_administrators",
"default_administrators",
"devad.abc.com: %w {}\n",
"abc_os_config",
"local_administrators",
"default_administrators",
"qad.abc.com: %w {}\n",
"CIS_Remediation_Windows",
"security_options",
"lanman_authentication_level: 3"
]
What should be generated:
{
"abc_os_config": {
"local_administrators": {
"default_administrators": {
"abc.com": "%w {}",
"devad.abc.com": "%w {}",
"qad.abc.com": "%w {}"
}
}
},
"CIS_Remediation_Windows": {
"security_options": {
"lanman_authentication_level": "3"
}
}
}