TechNet
Exporter (0) Imprimer
Développer tout

Accès au fournisseur WMI par programmation

 

Cette rubrique est en cours d'élaboration.

L'espace de noms utilisé pour obtenir des informations sur Reporting Services dans les exemples de code contenus dans cette rubrique est System.Management, qui est issu du Microsoft .NET Framework. L'espace de noms System.Management fournit un jeu de classes de code managé par le biais desquelles les applications .NET Framework peuvent accéder à des informations de gestion et les manipuler. Pour plus d'informations sur l'utilisation des classes WMI de Reporting Services à l'aide de l'espace de noms System.Management, consultez « Accès aux informations de gestion avec System.Management » dans le Kit de développement logiciel (SDK) Microsoft .NET Framework.

La méthode privilégiée pour rechercher des informations sur vos installations de serveur de rapports consiste à énumérer la collection d'instances WMI. L'exemple suivant indique comment rechercher des propriétés sur chaque instance de serveur de rapports en créant une collection et en effectuant une boucle dans la collection pour afficher les propriétés.

using System;
using System.Management;
using System.IO;
[assembly: CLSCompliant(true)]

class Class1
{
    [STAThread]
    static void Main(string[] args)
    {
        const string WmiNamespace = @"\\<ServerName>\root\Microsoft\SqlServer\ReportServer\<InstanceName>\v10\Admin";
        const string WmiRSClass =
          @"\\<ServerName>\root\Microsoft\SqlServer\ReportServer\<InstanceName>\v10\admin:MSReportServer_ConfigurationSetting";
        ManagementClass serverClass;
        ManagementScope scope;
        scope = new ManagementScope(WmiNamespace);

        // Connect to the Reporting Services namespace.
        scope.Connect();
        // Create the server class.
        serverClass = new ManagementClass(WmiRSClass);
        // Connect to the management object.
        serverClass.Get();
        if (serverClass == null)
            throw new Exception("No class found");

        // Loop through the instances of the server class.
        ManagementObjectCollection instances = serverClass.GetInstances();

        foreach (ManagementObject instance in instances)
        {
            Console.Out.WriteLine("Instance Detected");
            PropertyDataCollection instProps = instance.Properties;
            foreach (PropertyData prop in instProps)
            {
                string name = prop.Name;
                object val = prop.Value;
                Console.Out.Write("Property Name: " + name);
                if (val != null)
                    Console.Out.WriteLine("     Value: " + val.ToString());
                else
                    Console.Out.WriteLine("     Value: <null>");
            }
        }
        Console.WriteLine("\n--- Press any key ---");
        Console.ReadKey();
    }
}

Accédez au fournisseur WMI de Reporting Services
Fichier de configuration RSReportServer

Afficher:
© 2016 Microsoft