使用 Psexec 工具连接到远程桌面适用于 Powershell 和 Cmd,但不适用于 PowerShell ISE

使用 Psexec 工具连接到远程桌面适用于 Powershell 和 Cmd,但不适用于 PowerShell ISE

我使用此命令psexec \\ip_address -u user_name -p psw cmd 连接到远程桌面来运行命令,当您在 Power shell 或命令提示符中使用它时它可以工作,但在 Power shell ISE 中它不起作用。我不会在 ISE 中收到任何错误,但一旦执行开始,它就不会结束,除非您停止它。

一旦执行开始,它就不会结束并且不会连接到远程桌面,您也不会收到错误,但它在 PowerShell 或 CMD 上完美运行。

答案1

首先,代码截图对我们来说真的没什么用。它迫使人们必须重新输入你所做的内容,而大多数人都不愿意这样做。

因为 psexec 是一个交互式命令工具。您可以在 ISE 中使用它,但必须传递所需的每个参数。

这不是 psexec 的限制,尝试 nslookup 并会看到相同的问题。您无法在 ISE 控制台或 IDE 脚本窗格中使用许多交互式 DOS/CMD 命令,就像在 cmd/console 中一样。这不是它的设计。

自 ISE 发布以来,这一点已有记录。

ISE 中的控制台应用程序(非)支持

您需要注意 ISE 与控制台应用程序交互的方式存在一些限制,例如 ftp 和 netsh 之类的应用程序。

首先,ISE 可以很好地运行不需要用户输入的控制台应用程序。例如,“ping www.microsoft.com”和“cmd /c dir /s”

管道在 ISE 中也能正常工作,例如,PS C:\Users\ibrar> “show mode” | netsh netsh>online

脚本的自动化不需要用户干预,应该没问题。

但是,如果您运行需要输入的“cmd /k”,ISE 将会卡住,您必须使用 Ctrl-Break 或按停止按钮来停止管道。

您可以根据需要使用控制台主机来执行此类操作启动进程 cmdlet。或者其他启动方法之一。

看:

在 PowerShell 中运行可执行文件 | IT 专业人员

  1. 呼叫操作员和 Technet

原因:用于将字符串视为单个命令。适用于处理空格。

在 PowerShell V2.0 中,如果您正在运行 7z.exe (7-Zip.exe) 或其他以数字开头的命令,则必须使用命令调用运算符 &。

PowerShell V3.0 解析器现在做得更智能了,在这种情况下您不再需要 & 。

详细信息:运行命令、脚本或脚本块。调用运算符也称为“调用运算符”,可让您运行存储在变量中并由字符串表示的命令。由于调用运算符不解析命令,因此它无法解释命令参数

Example: 

& 'C:\Program Files\Windows Media Player\wmplayer.exe' "c:\videos\my home video.avi" /fullscreen

所以你的 psexec..

& 'C:\Tools\psexec.exe' "Your command arguments" /accepteula

相关内容