为什么不能通过在PowerShell上远程运行exe来映射本地化xml

时间:2016-08-01 09:34:58

标签: xml powershell

我尝试通过powershell远程启动xxx.exe -argument,xxx.exe将加载/映射自定义的localization.xml(需要将localization.xml和xxx.exe放在同一个文件夹中)并显示其相关名称。预期产出如下:

$("#topnavnmenu a").each(function () {
    var href = $(this).attr('href');

    if (path.substring(0, href.lenght) == href) {
       $(this).closest('li').addClass("active");
    }
})

如果我只是在远程端运行它,它可以正常工作

Description : [0076] HP 534M DP Virtual Bus Device #76
Link Type   : iSCSI
Link State  : Down
MAC/WWN     : 2C-44-FD-8D-72-3D
PF Number   : 1
Description : [0073] HP 534M DP Virtual Bus Device #73
Link Type   : Ethernet
Link State  : Down
MAC/WWN     : 2C-44-FD-8D-72-3C

但如果我远程运行xxx.cli

,它就无法映射localizaion.xml
Invoke-Command -ScriptBlock {& "C:\path\xxx.exe" -showadapter}

,其输出为,

param([String]$IP, [String]$Username, [String]$Password)
$secpwd = ConvertTo-SecureString $Password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential     ($Username,$secpwd)
$session = New-PSSession -ComputerName $IP -Credential $cred
Invoke-Command -Session $session{& "C:\path\xxx.exe" -showadapter}

localization.xml的部分内容就像

No localization entry -  : [0076] HP 534M DP Virtual Bus Device #76  
No localization entry -  : iSCSI
No localization entry -  : Down
No localization entry -  : 2C-44-FD-8D-72-3D
No localization entry -  : 1
No localization entry -  : [0073] HP 534M DP Virtual Bus Device #73
No localization entry -  : Ethernet
No localization entry -  : Down
No localization entry -  : 2C-44-FD-8D-72-3C

我很困惑,为什么xxx.cli可以自动映射/加载localization.xml,如果我在远程端运行它,但是一旦我远程运行它就无法映射。

是否有任何提示/解决方案?

非常感谢!!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您的程序正在尝试从程序所在的同一目录加载XML。基于此,听起来就像在远程会话中从不同的工作目录执行脚本块。

我不确定您的自定义程序是如何编写的。例如,它是否标识了执行它的完整路径或使用相对路径,因此我首先尝试更改到该目录,然后执行您的程序:

Invoke-Command -Session $session {cd C:\path; & .\xxx.exe -showadapter}