【问题标题】:Sysinternal Close Handle working in Command Prompt But Not PowershellSysinternal 关闭句柄在命令提示符下工作,但不是 Powershell
【发布时间】:2018-02-22 14:09:05
【问题描述】:

我有一个奇怪的问题。我正在尝试使用 Powershell 使用此 1 衬垫关闭手柄:

(&"D:\handle.exe" -p "–c C –p 3348 -y")

我收到以下回复:

找不到匹配的句柄。

当我在命令提示符中运行完全相同的命令时

handle.exe -c C -p 3348 -y

我明白了:

手柄关闭。

我正在以管理员身份运行 Powershell 和命令提示符。

编辑:注意:我可以在 Powershell 命令窗口中运行相同的命令,并获得与在普通 Windows 命令提示符中相同的预期结果。

【问题讨论】:

  • -p 将解析为-PipelineVariable 通用参数,删除它
  • 我试过了 (&"D:\TeamCity\Handle\handle.exe" "–c C –p 3348 -y") 还是一样
  • 外部(即未内置于 PowerShell)命令通常不需要任何特殊处理尝试使用&"D:\handle.exe" –c C –p 3348 -y:我怀疑handle 正在寻找进程名称“–c C –p 3348 -你”。当它们需要分开时,只将参数放在引号中会将它们作为单个参数传递
  • 谢谢理查德,也试过了,但它没有将任何参数传递到句柄 exe 中。
  • 注意:我可以在 Powershell 命令窗口中运行相同的命令提示符命令,并获得与正常命令提示符相同的预期结果。

标签: powershell sysinternals


【解决方案1】:

您不需要任何花哨的语法。 PowerShell 可以像cmd.exe 一样运行命令行程序。只需键入您想要的命令,然后按Enter

handle -c C -p 3348 -y

您可能需要从提升的 PowerShell 窗口运行它,但这与 cmd.exe 没有什么不同。

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2016-05-19
    相关资源
    最近更新 更多