【问题标题】:How can I use cdb.exe in an interactive Powershell Remoting session如何在交互式 Powershell Remoting 会话中使用 cdb.exe
【发布时间】:2012-02-25 10:07:59
【问题描述】:

我正在使用 cdb.exe 远程调试服务。为了缓解这种情况,我一直在尝试使用 powershell 远程会话来完成这项工作。但是,我遇到了我不理解的行为。

这行得通

  1. 新会话 |输入-pssession
  2. (在交互式会话中)cdb.exe -server "npipe:pipe=debug" -p ###
  3. (在另一个本地 powershell 或 cmd 中)cdb.exe -remote "npipe:pipe=debug,server=server"

这样,我就可以从本地 cdb 远程控制会话。我还在连接的远程 powershell 中远程看到了整个会话。这让我想到......对于一个快速会话,为什么不删除对第二个本地窗口的需要,而只使用远程会话中的 cdb 。

除了,我无法让它工作。

这行不通

  1. 新会话 |输入会话
  2. (在交互式会话中)cdb.exe -p ###

当 cdb 到达提示点时,powershell 退出 cdb 并给我 powershell 提示。

这是我可以更改的设置吗?
这只是 Powershell 远程处理和 WinRM 的工作原理吗?

我可以在远程窗口中实时观看整个会话,这似乎很奇怪,但无法与之交互。

【问题讨论】:

  • 不久前我做了类似的事情。我不记得确切的细节。这是我写的帖子,不知道对你有没有帮助naveensrinivasan.com/2010/05/14/…
  • 感谢纳文。你的文章让我走到了这一步:) 只是希望在消除第二个窗口方面迈出一步。

标签: powershell debugging windbg powershell-remoting


【解决方案1】:

任何类型的交互式 CLI 工具都可能无法在远程会话中工作,或者至少不能很好地工作。在远程会话中,PowerShell 序列化远程端发生的事情,并通过线路将其发送回本地会话。当您使用 PowerShell cmdlet 时,您将获得 PowerShell 可以处理的对象。 CLI 工具将返回字符串。我认为 PowerShell 远程处理在这里不会对您有所帮助。

【讨论】:

  • +1:即使在 v3 中,远程处理也不能很好地替代 telnet。这并不是真正的目标用例,但鉴于其他平台上的交互式远程控制台(如 ssh、telnet 等)的悠久历史,不可能不做出这些假设。它看起来像鸭子,说话像鸭子,但像两条腿的河马一样跛行,它不是鸭子。
  • Telnet 和 PowerShell 远程处理是苹果和橘子。如果您需要旧版支持,那么 telnet/ssh 是您的最佳选择。但是,如果您想利用 PowerShell 可以对管道中的对象以及其他所有功能执行的所有操作,那么 PowerShell 远程处理没有任何问题。它归结为您希望通过 shell 界面完成的工作。
  • @Jeffrey 一般而言,是的,但就问题的上下文(交互式 CLI)而言,它是有效的 - 它的字符串是否来自远程并不重要应用程序,事实上,远程处理流就像你能得到的一样愚蠢的终端。
  • 谢谢,这正是我的假设,只是希望不是答案。我很想看到具有 ssh 能力的 PSH,但完全理解为什么它没有并且不愿意为了获得而失去以对象为中心的外壳。只是希望有一个工具来统治它们,尤其是当我们进入 Windows Server 8 时。
猜你喜欢
  • 2016-11-08
  • 1970-01-01
  • 2017-06-17
  • 2011-05-05
  • 1970-01-01
  • 2010-10-31
  • 1970-01-01
  • 2014-02-23
  • 1970-01-01
相关资源
最近更新 更多