【问题标题】:Assistance with importing MXTSESSIONS file into MobaXterm协助将 MXTSESSIONS 文件导入 MobaXterm
【发布时间】:2018-12-27 18:01:48
【问题描述】:

我正在使用一个名为 MobaXterm 的工具来打开与 Linux 虚拟机的 SSH 会话。我正在尝试从脚本创建主机名的导入文件,这样我就可以动态创建要连接的 VM 列表,而无需在 MobaXterm Gui 中手动添加它们。为此,我创建了以下 PowerShell 脚本,该脚本从 .csv 文件中读取主机名和 IP 地址。该脚本正在创建一个 .mxtsessions 文件,并且该文件似乎是我从 MobaXterm 的会话文件导出测试中导出的文件。这是我的工作脚本:

$csvFilename = 'C:\mobaxterm\mobaXterm.csv'
$outfile = 'C:\mobaxterm\MobaXterm_Sessions.mxtsessions'
$csv = Import-Csv -Path $csvFilename -Delimiter ','

@'
[Bookmarks]
SubRep=
ImgNum=42
'@ | Out-File -FilePath $outfile

$output = foreach ($line in $csv) {
    "$($line.hostname)= #109#0%$($line.ip)%22%[loginuser]%%-1%-1%%%22%%0%0%0%%%-1%0%0%0%%1080%%0%0%1#MobaFont%10%0%0%0%15%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm%-1%0%0,0,0%54,54,54%255,96,96%255,128,128%96,255,96%128,255,128%255,255,54%255,255,128%96,96,255%128,128,255%255,54,255%255,128,255%54,255,255%128,255,255%236,236,236%255,255,255%80%24%0%1%-1%<none>%%0#0#"
}

$output | Out-File -FilePath $outfile -Append

导入文件只是一个包含两列的 .csv 文件,其中第一列包含主机名,第二列包含每个主机名的 IP 地址。

正如我所说,我的脚本似乎正在工作,因为它正在创建一个似乎有效的文件......但是当我尝试将此 .mxtsessions 文件导入 MobaXterm 时,它不会加载。没有显示错误。也许有一个日志我可以查看导入失败的原因?

为了进一步分类这个问题,我手动将一些机器手动添加到我的 MobaXterm 并导出文件。我已经将导出的文件与我使用 PowerShell 脚本创建的文件进行了比较。我没有看到两个文件之间的任何差异。两个文件的属性看起来相同(当然名称除外)。从我的比较来看,每个文件中的数据都是相同的。

谁能为我提供一些关于为什么我生成的 .mxtsessions 文件无法加载到 MobaXterm 的指针?我查看了 MobaXterm.log 文件,但没有看到与导入相关的任何错误?是否有其他人创建了导入会话文件并成功将其导入 MobaXterm?

本论坛可以为我提供的任何建议或指示将不胜感激。

谢谢。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    从刚刚的测试来看,我认为这是一个字符编码问题。如果我保存为 ASCII 或 UTF8-sans-BOM,则 MobaXTerm 导入有效,否则无效。

    如果你只有ASCII字符,写的时候加个编码参数试试:

    '@ | Out-File -FilePath $outfile -Encoding ASCII
    
    
    $output | Out-File -FilePath $outfile -Append -Encoding ASCII
    

    如果您需要 Unicode,没有 PowerShell 5.1 或更早版本的 BOM 就无法编写它,因此您需要:

    $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
    [System.IO.File]::WriteAllLines($outfile, $allyourtextcontent, $Utf8NoBomEncoding)
    

    【讨论】:

    • 哇!感谢 TessellatingHeckler 的快速回复。这正是我需要解决的问题。非常感谢您对此的帮助。抱歉,我还没有声望支持您的回复。但我确实点击了upvote,所以希望这对你有用。 :)
    • 很高兴它有帮助;点击作为一个接受的答案(你做了)比赞成票更有帮助,所以谢谢你:)
    猜你喜欢
    • 2019-11-21
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多