我正在寻找一种方法来远程获取类似于以下控制台应用程序的信息:
但是,我需要能够在不在系统上运行第三方应用程序的情况下执行此操作。这有效地排除了使用psexec远程执行命令,因为psexec将作为服务安装。
我应该补充一点,我在远程系统上有管理凭据。我考虑过使用WMI的远程执行能力,但这需要我将输出写入文件然后检索它。这是可能的,但我想知道是否有人有更好的方法。
我正在使用Delphi 2010。
答案 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,我认为不可能远程执行此操作(除了使用某种方法远程生成进程)。