任何人都不会知道的一个工具,该工具将允许我以生成一份报告,大会已安装的。净针对所有服务器在我的网的农场?(30-40个服务器)

或者,没有任何人有一个指针或一个链接在一些方式访问的信息的编程方式,通过工作或远程查询登记册,或一些其他的技术?

有帮助吗?

解决方案

感谢Kragen,对于暗示Explorer的GAC观的贴面之下,存在着文件,我可以用System.IO命名空间查询。幸运的是我到每个服务器的网络访问。

我只需要,对于一个单一的组件,来查询在GAC存在在许多服务器版本。尽管远远称不上完整的报表应用程序,这个片段担任我的目的很好:

private static void QueryServerGAC(string IP)
{
    string rootPath = String.Format(@"\\{0}\C$\WINDOWS\Assembly", IP);
    DirectoryInfo root = new DirectoryInfo(rootPath);

    foreach (DirectoryInfo gacDir in root.GetDirectories("GAC*")) // GAC, GAC_32, GAC_MSIL
    {
        foreach (DirectoryInfo assemDir in gacDir.GetDirectories("MyAssemblyName"))
        {
            foreach (DirectoryInfo versionDir in assemDir.GetDirectories())
            {
                string assemVersion = versionDir.Name.Substring(0, versionDir.Name.IndexOf('_'));
                foreach (FileInfo fi in versionDir.GetFiles("*.dll"))
                {
                    FileVersionInfo vi = FileVersionInfo.GetVersionInfo(fi.FullName);
                    Console.WriteLine("{0}\t{1}\t{2}\t{3}", IP, fi.Name, assemVersion, vi.FileVersion);
                }
            }
        }
    }
}

这一次可以为每个感兴趣的服务器IP被调用,并打印出IP,DLL名称,程序集版本,和文件版本控制台。

随意借此代码并修改自己的目的。

其他提示

你可以禁用默认GAC图把它变成一个正常浏览视图在注册表中,只要设定了以下价值1:

HKEY_LOCAL_MACHINE\Software\Microsoft\Fusion\

(资料来源 http://sqlmusings.wordpress.com/2007/11/17/how-to-disable-gac-view/)

然后你可以只采用一些文件夹比较的工具,或者只是作出什么样的组件本自的文件夹的名字。

FYI-这只是关闭的浏览视图,但是其他要点的互动与文件系统(例如该文件的目的在C#或命令提示)已经看到这种观点,所以有可能不是任何需要设置这一注册表上的关键所有的服务器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top