【问题标题】:Powershell Remoting C# invoke-expressionPowershell Remoting C# 调用表达式
【发布时间】:2011-10-16 08:01:52
【问题描述】:

由于this 方法不起作用,我正在尝试一种非常复杂的方法来获取远程机器上的完整路由信息。我正在尝试连接到远程 powershell 运行空间并以这种方式执行 route.exe 命令行工具并返回信息。

基本上我正在应用找到here 的解决方案,但我正在尝试运行命令:Invoke-Expression "c:\WINDOWS\system32\route.exe print" 而不是“get-process”

当我使用“get-process”时,它可以工作。当我尝试 Invoke-Expression 时,我收到一个异常,告诉我找不到这个 command-let。当我在本地机器上运行完全相同的命令时,它可以工作并显示路由信息。所以我知道这不是语法问题或路径中的拼写错误。有谁知道为什么会这样?

谢谢。

【问题讨论】:

    标签: c# powershell powershell-remoting


    【解决方案1】:

    好的,所以当我发布此内容时,我就有了一个绝妙但显而易见的想法。从技术上讲,“Invoke-Expression”是“命令”,“c:\WINDOWS\system32\route.exe print”是命令的参数。所以你需要把它添加到我上面链接的代码中:

    powershell.AddCommand(scriptText); 
    powershell.AddArgument(args);
    

    其中 scriptText 是“Invoke-Expression”,args 是“c:\WINDOWS\system32\route.exe print”。

    希望这对某人有所帮助!

    【讨论】:

      【解决方案2】:

      一点:你是否正确地逃脱了所有\
      另一点:尝试 Invoke-Command 而不是 Invoke-Expression

      【讨论】:

      • 是的,一切都很好,请参阅我编辑的问题/答案。谢谢你发帖。
      猜你喜欢
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多