1

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

基本上我正在应用这里找到的解决方案,除了我试图运行命令:Invoke-Expression "c:\WINDOWS\system32\route.exe print" 而不是 "get-process"

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

谢谢。

4

2 回答 2

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”。

希望这对某人有帮助!

于 2011-08-02T15:52:49.083 回答
0

一点:你都\正确逃脱了吗?
另一点:尝试 Invoke-Command 而不是 Invoke-Expression

于 2011-07-29T23:18:29.257 回答