2010-04-09 90 views
1

我最近正在使用Symantech的一种名为Norton EndPoint保护的产品。它由一个服务器控制台应用程序和一个部署应用程序组成,我想将他们的部署方法合并到我的一个产品的未来版本中。RPC命令启动软件安装

部署应用程序允许您选择运行Win2K,WinXP或Win7的计算机工作站。工作站的选择由AD(Active Directory)或NT Domain(WINs/DNS NetBIOS查询)提供。从列表中,您可以点击并选择部署Symantech病毒&间谍软件保护套件的端点软件。

然后,在选择哪些工作站应该收到软件包后,软件将setup.exe程序复制到每个工作站(假设通过管理共享\ pcname \ c $),然后命令工作站执行setup.exe,安装软件的工作站。

我真的很喜欢他们的产品如何工作,但不知道他们在做什么来完成所有步骤。我还没有对此进行深入的调查,比如嗅探网络等等,并想在这里查看是否有人熟悉我在说什么,如果你知道它是如何完成的,或者有想法如何可以完成。

我的想法是,他们使用管理员共享将软件复制到选定的工作站,然后发出RPC调用来命令工作站执行安装。

有趣的是,工作站在没有任何登录用户知道发生了什么事情的情况下执行此操作,直到需要重新启动的最后。在这一点上,用户会得到一个弹出窗口,要求现在或稍后重新启动,等等......我的预感是setup.exe程序正在弹出此消息。

重点:我正在寻找一种基于Windows的机器可以告诉其他人执行一些操作或运行某个程序的机制。

我的编程语言是C/C++

任何想法/建议赞赏。

+0

在使用DameWare工具 – topherg 2015-02-10 19:50:44

回答

3

我也在研究这个,因为我也想远程部署软件。我选择了数据包嗅探pstools,因为它已证明在这种远程管理任务中相当可靠。

我必须承认我绝对是在过度思考这个挑战。你现在可能已经完成了你的数据包嗅探,并发现了与我相同的事情。我希望通过离开这个帖子,我们可以协助其他开发者。

这是pstools如何实现执行任意代码:

它复制的系统服务可执行到\\ server \ ADMIN $(你要么必须已经在远程计算机上的本地管理员,或提供凭据)。一旦文件被复制,它就使用服务控制管理器API将复制的文件作为系统服务并启动它。

很明显,这个系统服务现在可以做任何想做的事情,包括绑定到RPC命名管道。在我们的例子中,系统服务将安装msi。要获得成功安装的确认,您可以远程轮询注册表项或rpc函数。无论哪种方式,你应该删除系统服务,当你完成并删除文件(psexec不这样做,我想他们不希望它被偷偷地使用,在这种情况下,留下服务至少会给一个管理员有机会认识到某人已经损坏了他们的盒子)。这种方法不需要对远程机器进行任何预配置,只需拥有管理员权限并且文件共享和rpc在防火墙中打开即可。

我在使用WMI的C#中看过演示,但我不喜欢这些解决方案。文件共享和RPC最有可能在防火墙中打开。如果不是,远程服务器的文件共享和远程MMC管理将不起作用。 WMI可以被阻止并仍然保持这些功能。

我和很多远程安装的软件一起工作过,其中很多软件都不如pstools可靠。我的猜测是,这是因为这些开发人员正在使用其他方法,不太可能在防火墙级别打开。

简单的解决方案往往是最难以捉摸的。与往常一样,我的帽子已交给SysInternals人员。他们是真正的黑客,正面的,老派的意思是这个词!

0

产品LANDesk和Altiris也提供此类功能。您需要在客户端监听来自服务器的指令/连接的守护进程侦听器。一旦建立连接,可能会发生许多事情:您可以通过透明方式传输文件,启动安装脚本等,以便透明地访问该文件夹中的任何用户。

我已经使用Twisted Framework(http://twistedmatrix.com)在少量的Linux机器上执行此操作。它是Python和Linux,而不是Windows,但前提是相同的:侦听客户端接受来自服务器的指令并执行它们。很简单。

此功能也可以在基于Windows的域中使用VB/Powershell脚本完成。

+0

后有完全相同的问题,这就要求客户端先前已经收到了监听者。赛门铁克产品不需要事先安装任何客户端。赛门铁克部署显然是利用了Microsoft Windows功能,我现在假设这是RPC或其他一些方法,例如远程服务安装,而后者又被用于调用执行setup.exe程序复制。 – Eric 2010-04-09 18:14:28