从Windows域上的远程工作站搜索并获取文件信息

时间:2012-04-29 18:12:38

标签: c# wmi

我需要查询Windows域上远程工作站的文件系统。程序应在远程文件系统中搜索特定文件名和文件路径的存在。例如,假设我想知道10,000台计算机的域中的任何工作站上是否存在“c:\ program files \ mozilla \ firefox.exe”或“c:\ program files \ chrome \ chrome.exe”。

我知道哪些选项: 1)只有C#代码使用WIN32 API进行Windows模拟,并使用UNC路径和管理员共享访问权限,如\ ServerName \ C $ \ FolderName。(我不确定是否需要从域服务器运行应用程序以获取工作站管理员共享访问权限)

2)将WMI与C#管理类一起使用,使用域管理员凭证模拟获取远程系统访问权限,然后使用查询获取远程文件信息。

我已经实现了两种方案,但我不确定哪种方案最好并且实时性能良好。我只测试了2-3个系统网络。

我心里有疑问。

1)哪种选择最适合这种情况? 2)哪一个更快,更安全,更一致?

请建议我提供上述要求之一或任何最佳选择。

谢谢你, 拉维

1 个答案:

答案 0 :(得分:1)

无需从域控制器运行此命令。使用适当的权限,您可以从任何地方运行WMI查询。实际上,将它们推送到DC会为查询添加一跳,并且可能比直接查询更慢。如果你有进程的域管理员权限,我只是直接查询文件存在检查的unc路径,并完成它。