如何远程获取系统的网络共享和连接?

时间:2010-04-23 16:48:59

标签: windows delphi wmi

我正在寻找一种方法来远程获取类似于以下控制台应用程序的信息:

  • net use
  • net share
  • netstat -ano

但是,我需要能够在不在系统上运行第三方应用程序的情况下执行此操作。这有效地排除了使用psexec远程执行命令,因为psexec将作为服务安装。

我应该补充一点,我在远程系统上有管理凭据。我考虑过使用WMI的远程执行能力,但这需要我将输出写入文件然后检索它。这是可能的,但我想知道是否有人有更好的方法。

我正在使用Delphi 2010。

3 个答案:

答案 0 :(得分:5)

有一些Delphi WMI组件允许远程访问。我个人没有使用过远程选项。

MagWmi - http://www.magsys.co.uk/delphi/magwmi.asp(Delphi 2010支持,免费提供源代码)

WMISet / NTSet - http://www.online-admin.com/ntset.html(TNTShare 管理本地计算机和远程主机上的共享资源。使用此组件,您可以更改共享设备列表,查看远程用户打开的文件,查看和终止打开到目标计算机的远程会话,更改映射网络驱动器列表。它不是免费的。)

GLibWMI - 在Torry.net找到,主页不可用。 (Delphi 2010支持和免费软件源码)。不确定它是否能够远程访问。我没用过它。

希望这有帮助

答案 1 :(得分:2)

我认为与Logman相同 您可以使用 WMI

访问此信息

GLibWMI 组件可在此网站(http://neftali.clubdelphi.com)或sourceforge(http://sourceforge.net/projects/glibwmi/)上找到。
当前版本为1.8b,并有一个名为 SharedInfo 的组件,您可以使用该组件获取该信息。
源代码可用,因此您可以根据需要将其扩展为访问其他WMI类。

的问候。
P.D:对不起我的英语错误。

答案 2 :(得分:1)

您可以使用NetShareEnum函数枚举共享(标题位于Jedi Apilib中)。

我认为必须有一个api用于“净使用”,但我从未使用它(检查WNet functions)。替代方法是使用WshNetwork com对象的EnumNetworkDrives方法。

对于netstat,我认为不可能远程执行此操作(除了使用某种方法远程生成进程)。