Accedere al provider WMI per Reporting Services
Nel provider WMI per Reporting Services sono esposte due classi WMI per l'amministrazione di istanze del server di report in modalità nativa tramite scripting:
Importante
A partire dalla versione SQL Server 2012 (11.x), il provider WMI è supportato solo per server di report in modalità nativa. I server di report in modalità SharePoint possono essere gestiti con pagine di Amministrazione centrale SharePoint e script di PowerShell.
Classe | Spazio dei nomi | Descrizione |
---|---|---|
MSReportServer_Instance | root\Microsoft\SqlServer\ReportServer\RS_<EncodedInstanceName>\v13 | Fornisce le informazioni di base necessarie affinché un client si connetta a un server di report installato. |
MSReportServer_ConfigurationSetting | root\Microsoft\SqlServer\ReportServer\RS_<EncodedInstanceName>\v13\Admin | Rappresenta i parametri di installazione e di runtime di un'istanza del server di report. Tali parametri sono archiviati nel file di configurazione per il server di report. ** Importante ** Questa classe è accessibile solo con privilegi amministrativi. |
Per ogni istanza del server di report viene creata un'istanza di ognuna delle classi sopra indicate. È possibile utilizzare qualsiasi strumento Microsoft o non Microsoft per accedere agli oggetti WMI esposti dal server di report, incluse le interfacce di programmazione WMI esposte da .NET Framework stesso. Questo articolo descrive come accedere e usare le istanze della classe WMI con il comando PowerShell Get-WmiObject.
Determinare il nome dell'istanza nella stringa dello spazio dei nomi
Il nome dell'istanza nel percorso dello spazio dei nomi per le classi WMI per Reporting Services è una codifica dei nomi di istanze che vengono specificati durante l'installazione delle istanze denominate di Reporting Services; ovvero, vengono codificati i caratteri speciali nei nomi delle istanze. Ad esempio, un carattere di sottolineatura (_) è codificato come _5f
, pertanto un nome di istanza My_Instance
è codificato come My_5fInstance
nel percorso dello spazio dei nomi WMI.
Per elencare i nomi codificati delle istanze del server di report nel percorso dello spazio dei nomi WMI, utilizzare il comando PowerShell seguente:
PS C:\windows\system32> Get-WmiObject -namespace root\Microsoft\SqlServer\ReportServer -class __Namespace -ComputerName hostname | select Name
Accedere alle classi WMI utilizzando PowerShell
Per accedere alle classi WMI, eseguire il comando riportato di seguito:
PS C:\windows\system32> Get-WmiObject -namespace <namespacename> -class <classname> -ComputerName <hostname>
Ad esempio, per accedere alla classe MSReportServer_ConfigurationSetting nell'istanza del server di report predefinita dell'host myrshost, eseguire il comando riportato di seguito. L'istanza del server di report predefinita deve essere installata in myrshost affinché questo comando possa essere eseguito.
PS C:\windows\system32> Get-WmiObject -namespace "root\Microsoft\SqlServer\ReportServer\RS_MSSQLSERER\v11\Admin" -class MSReportServer_ConfigurationSetting -ComputerName myrshost
Tutti i valori e nomi di proprietà delle classi vengono restituiti dalla sintassi di questo comando. Vengono restituite tutte le istanze della classe MSReportServer_ConfigurationSetting, anche se si accede alla classe nello spazio dei nomi dell'istanza del server di report predefinita (RS_MSSQLSERVER). Ad esempio, myrshost potrebbe essere installato con l'istanza predefinita del server di report e un'istanza del server di report denominata SHAREPOINT. Questo comando restituisce due oggetti WMI e restituisce i nomi e i valori delle proprietà per entrambe le istanze del server di report.
Per restituire un'istanza specifica della classe quando vengono restituite più istanze, usare il parametro -Filter per filtrare i risultati in base alle proprietà con valori univoci quale InstanceName. Ad esempio, per restituire solo l'oggetto WMI per l'istanza del server di report predefinita, utilizzare il comando riportato di seguito:
PS C:\windows\system32> Get-WmiObject -namespace "root\Microsoft\SqlServer\ReportServer\RS_MSSQLServer\v13\Admin" -class MSReportServer_ConfigurationSetting -ComputerName myrshost -filter "InstanceName='MSSQLSERVER'"
Eseguire una query sui metodi e sulle proprietà disponibili
Per visualizzare i metodi e le proprietà disponibili in una delle classi WMI per Reporting Services, inviare i risultati da Get-WmiObject al comando Get-Member. Ad esempio:
PS C:\windows\system32> Get-WmiObject -namespace "root\Microsoft\SqlServer\ReportServer\RS_MSSQLServer\v13\Admin" -class MSReportServer_ConfigurationSetting -ComputerName myrshost | Get-Member
Utilizzare un metodo o una proprietà WMI
Una volta che si dispone degli oggetti WMI nelle classi di Reporting Services e che si conoscono i metodi e le proprietà disponibili, è possibile utilizzare questi ultimi. Ad esempio, se si dispone di un'istanza del server di report denominata in modalità integrata SharePoint chiamata SHAREPOINT, utilizzare la sequenza dei comandi riportata di seguito per recuperare l'URL per il sito Amministrazione centrale SharePoint:
PS C:\windows\system32> $rsconfig = Get-WmiObject -namespace "root\Microsoft\SqlServer\ReportServer\RS_MSSQLServer\v13\Admin" -class MSReportServer_ConfigurationSetting -ComputerName myrshost -filter "InstanceName='SHAREPOINT'"
PS C:\windows\system32> $rsconfig.GetAdminSiteUrl()