【发布时间】:2024-12-14 21:20:01
【问题描述】:
由于某种原因,我似乎无法获得输出和重定向以通过 ssh 从 linux 工作到 Windows。我有一个 powershell 脚本,它只在每个流上输出一条消息。
从 powershell 终端看起来像这样:
$ ssh me@windows.box.com
PS C:\Users\me> C:/"Program Files"/App3/bin/script.ps1 2> $null
This is output
This is to host
WARNING: This is a warning!
PS C:\Users\me> C:/"Program Files"/App3/bin/script.ps1 *>&1 2> $null
This is output
This is to host
WARNING: This is a warning!
C:\"Program Files"\App3\bin\script.ps1 : This is an error
At line:1 char:1
+ C:/"Program Files"/App3/bin/script.ps1 *>&1 2> $null
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,script.ps1
但由于某种原因,通过 ssh 命令,我无法将其他流重定向到标准输出:
$ ssh me@windows.box.com "C:/\\\"Program Files\\\"/App3/bin/script.ps1" 2>/dev/null
This is output
This is to host
WARNING: This is a warning!
$ ssh me@windows.box.com "C:/\\\"Program Files\\\"/App3/bin/script.ps1 *>&1" 2>/dev/null
This is output
This is to host
WARNING: This is a warning!
并澄清这似乎是特定于脚本的问题:
$ ssh me@windows.box.com "Write-Host \\\"This is to host\\\""
This is to host
$ ssh me@windows.box.com "Write-Output \\\"This is output\\\""
This is output
$ ssh me@windows.box.com "Write-Warning \\\"This is a warning\!\\\""
WARNING: This is a warning\!
$ ssh me@windows.box.com "Write-Error \\\"This is an error\\\""
Write-Error "This is an error" : This is an error
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException
关于如何重定向脚本输出的任何想法?
我确实遇到了另一个问题,即在运行脚本时获取输出是不同的目录,但这是另一天的战斗,另一个 Stack Overflow 帖子。我在运行RHEL,脚本内容是:
Write-Output "This is output"
Write-Host "This is to host"
Write-Verbose "This message is definitely more verbose"
Write-Debug "This is marked debug"
Write-Warning "This is a warning!"
Write-Error "This is an error"
【问题讨论】:
-
本地机器在linux上吗?
-
另外,如果 script.ps1 抛出一些错误,为什么在终端上看不到呢?也许发布该脚本的内容以更清晰
-
@MikeTwc 嘿,迈克,感谢您的关注。我试图在没有实际做任何跑腿的情况下说明一个观点,但事实证明我的一个假设是错误的。我现在更困惑了,但我已经用你指出的所有内容更新了这个问题。
-
忘了提及 *>file 也不能与 ssh 一起使用,所以这就是我使用 >file 2>file 的原因。
-
我刚刚意识到它的位置,部分。如果我从 C:/test 或我的主目录运行脚本,我不会得到任何输出。如果我从 C:/Program Files/App3/bin/ 运行它,我会得到输出。
标签: windows powershell ssh