--- title: "Accessing the WMI Provider Programmatically | Microsoft Docs" ms.date: 11/02/2016 ms.prod: reporting-services ms.prod_service: "reporting-services-native" ms.technology: reporting-services ms.topic: reference ms.assetid: 67bd266b-1484-4863-8152-060a993420a9 author: maggiesMSFT ms.author: maggies --- # Accessing the WMI Provider Programmatically ## WMI Provider Overview The namespace used to obtain information about [!INCLUDE[ssRSnoversion](../includes/ssrsnoversion-md.md)] in the code samples shown in this topic is the **System.Management** namespace, found in the [!INCLUDE[msCoName](../includes/msconame-md.md)] [!INCLUDE[dnprdnshort](../includes/dnprdnshort-md.md)]. The **System.Management** namespace provides a set of managed code classes through which [!INCLUDE[dnprdnshort](../includes/dnprdnshort-md.md)] applications can access and manipulate management information. For more information on using the Reporting Services WMI classes using the **System.Management** namespace, see "Accessing Management Information with System.Managment" in the [!INCLUDE[msCoName](../includes/msconame-md.md)] [!INCLUDE[dnprdnshort](../includes/dnprdnshort-md.md)] SDK. ## Finding a Report Server Instance 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. ```vb Imports System Imports System.Management Imports System.IO Module Module1 Sub Main() Const WmiNamespace As String = "\\\root\Microsoft\SqlServer\ReportServer\\v10\Admin" Const WmiRSClass As String = _ "\\\root\Microsoft\SqlServer\ReportServer\\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: ") Else Console.Out.WriteLine(" Value: " + val.ToString()) End If Next Next Console.WriteLine("--- Press any key ---") Console.ReadKey() End Sub End Module ``` ```csharp using System; using System.Management; using System.IO; [assembly: CLSCompliant(true)] class Class1 { [STAThread] static void Main(string[] args) { const string WmiNamespace = @"\\\root\Microsoft\SqlServer\ReportServer\\v10\Admin"; const string WmiRSClass = @"\\\root\Microsoft\SqlServer\ReportServer\\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: "); } } Console.WriteLine("\n--- Press any key ---"); Console.ReadKey(); } } ``` ## See Also [Access the Reporting Services WMI Provider](../reporting-services/tools/access-the-reporting-services-wmi-provider.md) [RsReportServer.config Configuration File](../reporting-services/report-server/rsreportserver-config-configuration-file.md)