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



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

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

如果我只是在远程上运行它,它会很好

Invoke-Command -ScriptBlock {& "C:pathxxx.exe" -showadapter}

但是如果我远程运行xxx.cli ,它就无法映射localizaon.xml

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:pathxxx.exe" -showadapter}

其输出为

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

localization.xml的部分内容类似

<?xml version="1.0" encoding="SHiFT-JIS"?>
<localization>
    <usermessage id ="0x0001" message = "Description"/>
    <usermessage id ="0x0002" message = "Link Type"/>
    ...
<localization>

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

有什么提示/解决方案吗?

非常感谢!!

如果我理解正确,您的程序正试图从程序所在的同一目录加载XML。基于此,在远程会话中,脚本块似乎是从不同的工作目录执行的。

我不确定你的自定义程序是怎么写的。例如,它是识别执行它的完整路径,还是使用相对路径,所以我会先尝试更改到该目录,然后执行你的程序:

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

最新更新