我希望设置一个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
}
}