WMI공급자에 프로그래밍 방식으로 액세스Accessing the WMI Provider Programmatically

WMI 공급자 개요WMI Provider Overview

이 항목에 표시된 코드 예제의 Reporting ServicesReporting Services 에 대한 정보를 얻는 데 사용되는 네임스페이스는 System.Management 네임스페이스이며 MicrosoftMicrosoft .NET Framework.NET Framework에서 찾을 수 있습니다.The namespace used to obtain information about Reporting ServicesReporting Services in the code samples shown in this topic is the System.Management namespace, found in the MicrosoftMicrosoft .NET Framework.NET Framework. System.Management 네임스페이스는 .NET Framework.NET Framework 응용 프로그램에서 관리 정보를 액세스하고 조작하는 데 사용할 수 있는 관리 코드 클래스 집합을 제공합니다.The System.Management namespace provides a set of managed code classes through which .NET Framework.NET Framework applications can access and manipulate management information. System.Management 네임스페이스를 사용하여 Reporting Services WMI 클래스를 사용하는 방법은 MicrosoftMicrosoft .NET Framework.NET Framework SDK의 "System.Management를 사용하여 관리 정보 액세스"를 참조하십시오.For more information on using the Reporting Services WMI classes using the System.Management namespace, see "Accessing Management Information with System.Managment" in the MicrosoftMicrosoft .NET Framework.NET Framework SDK.

보고서 서버 인스턴스 찾기Finding a Report Server Instance

보고서 서버 설치에 대한 정보를 찾을 때는 WMI 인스턴스 컬렉션을 열거하는 것이 좋습니다.The preferred way of finding information on your report server installations is to enumerate through the WMI instance collection. 아래 예는 컬렉션을 만들고 이 컬렉션을 반복하여 속성을 표시하는 방법으로 모든 보고서 서버 인스턴스에 대한 속성을 찾는 방법을 보여 줍니다.The example below shows how to find properties on every report server instance by creating a collection, and looping through the collection to display the properties.

Imports System  
Imports System.Management  
Imports System.IO  

Module Module1  
    Sub Main()  
        Const WmiNamespace As String = "\\<ServerName>\root\Microsoft\SqlServer\ReportServer\<InstanceName>\v10\Admin"  
        Const WmiRSClass As String = _  
           "\\<ServerName>\root\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\admin:MSReportServer_ConfigurationSetting"  

        Dim serverClass As ManagementClass  
        Dim scope As ManagementScope  
        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 Is Nothing Then Throw New Exception("No class found")  

        'Loop through the instances of the server class.  
        Dim instances As ManagementObjectCollection = serverClass.GetInstances()  
        Dim instance As ManagementObject  
        For Each instance In instances  
            Console.Out.WriteLine("Instance Detected")  
            Dim instProps As PropertyDataCollection = instance.Properties  
            Dim prop As PropertyData  
            For Each prop In instProps  
                Dim name As String = prop.Name  
                Dim val As Object = prop.Value  
                Console.Out.Write("Property Name: " + name)  
                If val Is Nothing Then  
                    Console.Out.WriteLine("     Value: <null>")  
                Else  
                    Console.Out.WriteLine("     Value: " + val.ToString())  
                End If  
            Next  
        Next  

        Console.WriteLine("--- Press any key ---")  
        Console.ReadKey()  

    End Sub  
End Module  
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>\v13\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();  
    }  
}  

관련 항목:See Also

Reporting Services WMI 공급자 액세스 Access the Reporting Services WMI Provider
RsReportServer.config 구성 파일 RsReportServer.config Configuration File