需求:整理Webseal的反向代理的Junction列表
首先通过LMI控制台虽然能查看,但操作很繁琐:
1选中RP实例,点:管理>联结管理,
2进去要选中junction,点:编辑>服务器>编辑,查询到IP地址
3再点击编辑,查看端口……
几百个Junction整理下来,很容易漏掉,而且可能一天时间就过去了。
快速解决方法:
第1步:导出配置到webseal_config.zip文件

第2步:将zip解压缩后的junctions目录拷贝到目录下,如:D:\202508\webseal_config
每个junction对应一个xml文件,内容类似:
<JUNCTION>
<VERSION>9.0.5.0</VERSION>
<NAME>vhost-fs-http</NAME>
<JUCTYPE>tcp</JUCTYPE>
<HARDLIMIT>0</HARDLIMIT>
<SOFTLIMIT>0</SOFTLIMIT>
<BASICAUTH>filter</BASICAUTH>
<CLIENTID>insert_pass_usgr</CLIENTID>
<VIRTUALHOSTJCT/>
<LTPAKEYFILE>/var/pdweb/shared/ltpa-keys/ltpa.token</LTPAKEYFILE>
<LTPAKEYFILEPASSWD>MTIzNDU2AA==</LTPAKEYFILEPASSWD>
<REQUESTENCODING>utf8_uri</REQUESTENCODING>
<UUID>1dfd78a2-8126-11e9-940a-0050569dbbcb</UUID>
<HOST>fs.myco.cn</HOST>
<PORT>80</PORT>
<VIRTHOSTNM>fs.myco.cn:80</VIRTHOSTNM>
<SERVERDN></SERVERDN>
<URLQC>/cgi-bin/query_contents</URLQC>
<LOCALADDRESS></LOCALADDRESS>
<OPERATIONALMODE>online</OPERATIONALMODE>
<WHENTHROTTLED>0</WHENTHROTTLED>
</JUNCTION>
第3步:执行Powershell脚本geturl.ps1
# 指定包含 XML 文件的目录
$directory = "D:\202508\webseal_config\junctions"
# 获取目录下所有 XML 文件
$xmlFiles = Get-ChildItem -Path $directory -Filter *.xml
# 创建一个数组来存储提取的信息
$xmlInfo = @()
foreach ($xmlFile in $xmlFiles) {
# 加载 XML 文件
[xml]$xmlContent = Get-Content -Path $xmlFile.FullName
# 从 XML 中提取 Name、Host、Port、VirtHostNm
$name = $xmlContent.JUNCTION.NAME
$port = $xmlContent.JUNCTION.PORT
$virtHostNm = $xmlContent.JUNCTION.VIRTHOSTNM
$OperationalMode = $xmlContent.JUNCTION.OPERATIONALMODE
# 创建一个自定义对象来存储信息
$info = [PSCustomObject]@{
Name = $name
Port = $port
VirtHostNm = $virtHostNm
OperationalMode = $OperationalMode
}
# 将信息添加到数组
$xmlInfo += $info
}
# 输出提取的信息
$xmlInfo | Format-Table -AutoSize
# 如果需要将结果保存到文件,可以取消注释以下行
$xmlInfo | Export-Csv -Path "提取结果.csv" -NoTypeInformation -Encoding UTF8
输出示例:
Name Port VirtHostNm OperationalMode
—- —- ———- —————
vhost-fs-http 80 fs.myco.cn:80 online
/OCR 8080 192.168.98.208:8080 online