在远程位置上连接的最后一个配置文件中获得文件上的行号45的内容



我希望设置一个powershell脚本,它将允许在远程位置连接的最后一个配置文件中获取文件上第45行的内容所讨论的路径是:USERPROFILE\AppData\Roaming\Avaya\one-X Agent\2.5\Config.xml

目标是在计算机园区中的几个位置(大约500个(拥有这条线的内容

这是xml文件:

<ConfigData xmlns="http://xml.avaya.com/endpointAPI">
<version>1</version>
<parameter>
<name>OwnIPAddress</name>
<value>10.87.1.254</value>
</parameter>
<parameter>
<name>SipProxyServerList</name>
<value>10.69.76.10</value>
</parameter>
<parameter>
<name>AlternateServersList</name>
<value>10.69.76.10;</value>
</parameter>
<parameter>
<name>DialPlanCountryCode</name>
<value>
</value>
</parameter>
<parameter>
<name>DialPlanInternationalAccessCode</name>
<value>
</value>
</parameter>
<parameter>
<name>DialPlanLongDistanceAccessCode</name>
<value>
</value>
</parameter>
<parameter>
<name>DialPlanOutsideLineAccessCode</name>
<value>
</value>
</parameter>
<parameter>
<name>RtpPortLow</name>
<value>2048</value>
</parameter>
<parameter>
<name>RtpPortRange</name>
<value>63487</value>
</parameter>
<parameter>
<name>PrevSipUserAccount</name>
<value>2729350</value>
</parameter>
<parameter>
<name>AlternateServerListTimeOut</name>
<value>30</value>
</parameter>
<parameter>
<name>DialPlanNationalPhoneNumbLengthList</name>
<value>
</value>
</parameter>
<parameter>
<name>DialPlanExtensionLengthList</name>
<value>
</value>
</parameter>
<parameter>
<name>AlternateGKAddressList</name>
<value>10.69.76.10</value>
</parameter>
</ConfigData>

我找到了这个命令:

(Get-Content -Path "$env:USERPROFILEAppDataRoamingAvayaone-X Agent2.5Config.xml" -TotalCount 45)[-1]

下面的代码将查找PrevSipUserAccount节点的值请注意,此代码在大型XML文件上的执行可能不是最佳的,并且Powershell函数中的return与C#等语言中的return的执行方式不同。

param(
[string] $filepath = "$PSScriptRootConfig.xml",
[string] $targetParamName = 'PrevSipUserAccount'
)
[xml] $xml = Get-Content $filepath
$params = $xml.ConfigData.Parameter 
$obj = @{}
foreach ($param in $params) {    
$obj = [PSCustomObject] @{
Name = ($param | Select-Object -ExpandProperty name).Trim()
Value = ($param | Select-Object -ExpandProperty value).Trim()    
}
if ($obj.Name.Contains("$targetParamName")) {
return $obj
}
}

最新更新