Windows 2003 服务器上的远程命令执行

Windows 2003 服务器上的远程命令执行

我有一个命令想要在远程 Windows 2003 服务器上执行。

我尝试过 wmic,它可以工作,但是显示标准输出的唯一方法是将其重定向到本地文件,然后列出本地文件(有点笨重)。

我也尝试过 psexec,但它似乎在与 Windows 2003 服务器配合使用时会出现问题(至少据报告最新版本存在此问题 - 而旧版本不可用)。

我试图远离 Windows rcmd 实用程序,因为我相信有一个需要安装的服务器组件,并且我不想为机器提供常规命令行访问。

还有其他可以允许我在远程机器上执行特定命令的工具或实用程序建议吗?

笔记:

下面是我用来尝试使 PsExec 正常工作的一个非常简单的示例:

C:\Program Files\SysInternalsSuite>psexec \\remote-svr -i -u MyUsername D:\Public\do.bat

PsExec v1.95 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

Password:

D:\Public\do.bat exited on remote-svr with error code 1.

我的示例 do.bat 文件很简单,仅包含以下行:

copy dg.bmp dg1.bmp

源文件 dg.bmp 存在于远程计算机上,但目标文件不存在。我对远程计算机有写访问权限。

当我执行上述 PsExec 命令时,do.bat 文件没有运行(尽管我在远程服务器上拥有特权),并且我没有得到我期望的控制台输出。我确实喜欢使用 PsExec 的想法,因此如果有人能告诉我我可能做错了什么,我将不胜感激。

谢谢...

答案1

您在使用 PSExec 和 W2k3 时究竟遇到了什么问题?我们在 500+ W2k3 服务器环境中广泛使用这两者...

事实上,整个 PSTools 套件震撼了我的世界。

编辑:

这是您对原始票证编辑的跟进。

您遇到的问题是“复制”是 CMD.exe 的一个功能。它本身并不作为可执行文件存在。就像没有 Del.exe 或 MD.exe 等一样。

如果希望示例能够正常运行,则需要通过 PSexec 调用 CMD,并将复制命令传递给它。以下是示例:

psexec -u MyDomain\MyUsername -p MyPassword \\MyServer cmd.exe /c copy c:\sys\util\monitor_localhost.bat blah.bat

结果如下:

==================================
PsExec v1.86 - Execute processes remotely Copyright (C) 2001-2007 Mark Russinovich Sysinternals - www.sysinternals.com

1 file(s) copied. cmd.exe exited on fcgwnt53 with error code 0.
==================================

答案2

管理员武器库允许你执行远程命令到您的一个、一些或所有 Windows 系统。免费试用。

选择要在哪台计算机上执行命令后,只需选择“工具”->“远程命令”即可。

答案3

在 Windows 环境中远程执行命令的方法是使用 Winrm 和 WINrs。请参阅如何启用 Windows 远程 ShellWinRM 和 WinRS 如何帮助您、如何启用它们以及如何使用它们的示例。

答案4

您可能想尝试 psexec 的“-c”选项。它会将文件复制到远程系统,然后执行它,否则,它会认为它存在于远程系统上。因此,类似于(将 do.bat 复制到本地系统的 c: 然后):

psexec -c \remote-svr -i -u 我的用户名 c:\do.bat

另外,为什么您希望它与远程系统的桌面会话(-i 选项)进行交互?

哈,〜H

相关内容