首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用powershell发布Zscaler

使用powershell发布Zscaler
EN

Stack Overflow用户
提问于 2020-09-23 02:44:10
回答 1查看 622关注 0票数 0

请参阅下面的powershell代码,我目前正在使用。

代码语言:javascript
复制
$ZscalerURL = "https://ips.zscalertwo.net/cenr/json"
             $r = (Invoke-RestMethod -Uri $ZscalerURL).'zscalertwo.net'
             $results = New-Object PSObject

              $r.parameters.psobject.Properties.Name | 
             ForEach{ 
                 Add-Member -InputObject $results -NotePropertyName $_ -NotePropertyValue $r.parameters.$_.Value 
             }

我无法使用此方法和其他一些方法将json转换成可读的格式,例如,我不能引用$r.continent.city。

已经尝试过使用调用-webrequest的从json转换,并使用使用foreach循环的hacky方法,例如$americas=foreach ($name在$r.‘大洲:美洲’){$name}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-23 04:24:46

目前还不清楚您的预期输出是什么。但是,您可以通过循环遍历所有的大陆属性和城市属性来执行类似的操作。然后将这些大陆和城市的名称传递给网络地址对象。

代码语言:javascript
复制
$ZscalerURL = "https://ips.zscalertwo.net/cenr/json"
$r = (Invoke-RestMethod -Uri $ZscalerURL).'zscalertwo.net'

foreach ($continent in $r.psobject.properties.name) {
    foreach ($city in $r.$continent.psobject.properties.name) {
        $r.$continent.$city |
            Select-Object @{n='Continent';e={($continent -split ':')[-1].Trim()}},@{n='City';e={($city -split ':')[-1].Trim()}},*
    }
}

如果您想在没有操作的情况下列出大陆和城市的属性,您可以不使用-split方法。rest方法响应以continent : <continent name>的形式提供欧陆属性值。同样,城市属性值是city : <city name>-split方法去掉了continent :city :前缀。如果不进行操作,可以使用以下语法作为示例检索特定城市的网络地址信息:

代码语言:javascript
复制
$r.'continent : emea'.'city : amsterdam'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64020279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档