Whilst attempting to deploy Skype for Business Server Monitoring Reports I ran into an issue where the following error message was displayed –
Could not get objects from namespace root\Microsoft\SqlServer\ReportServer.
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))Cannot get the ReportServerWebService URL. Verify that Reporting Services is deployed and configured properly on the target SQL instance:”sql”, and that WMI is included on the exception list of firewall setting on the server that is running Reporting Services.Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
A search of many blogs and other resources turned up a few results however they didn’t seem to answer the problem affecting this deployment.
The installation was part of a Skype for Business upgrade and the previous monitoring reports deployment for Lync 2013 was completed a number of years back without issue. As I wanted to re-use many of the settings with the new deployment and to sanity check what I’d done previously I opened the documentation for the previous deployment and checked what I’d used for the SQL server, SSRS report server, service account, and the read only group for accessing the reports and everything looked in order however still the issue was occurring whenever the installation was attempting to return the SSRS web service url.
Working with an SQL admin we performed the usual checks to ensure connectivity such as ability to resolve DNS name, service account permissions, checked windows firewall settings to ensure appropriate ports were open, grabbed a capture from wireshark, etc.
Still no luck.
The error message was a clue so we realised we needed to confirm that WMI was indeed available for remote connections so I decided to use powershell to see what would happen when I ran the following command from a Lync front end server –
Get-WmiObject -namespace root\Microsoft\SqlServer\ReportServer -class __Namespace -ComputerName SQL | select Name
The following error was returned
Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) At line:1 char:1 + Get-WmiObject -namespace root\Microsoft\SqlServer\ReportServer -class __Namespa … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Get-WmiObject], UnauthorizedAccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
Next the SQL Admin ran the same command from the SSRS server and the result was a success
Get-WmiObject -namespace root\Microsoft\SqlServer\ReportServer -class __Namespace -ComputerName SQL | select Name Name ---- RS_MSSQLSERVER
From this we concluded there is either a remote connectivity or permissions issue. Next the SQL administrator ran the command from an elevated powershell session from their desktop and the result was successful. So now we definitely know the issue is permissions related, specifically with the account I am using to install the reports.
A quick and easy solution during the deployment stage was to assign my account local administrator permissions to the server hosting SSRS. After assigning permissions I re-ran the powershell command from a front end server without any issue and could successfully query WMI for the SSRS URL. I then re-ran the deployment wizard and the monitoring reports installed successfully.
Why was the previous Lync 2013 monitoring reports deployment a success and the new Skype for Business Server not? It could be due to the fact that I am no longer a domain administrator therefore I don’t have the free reign over the environment I once had. By targeting the SSRS server with additional permissions I was able to complete the deployment.
After completing the deployment my adminstrator permissions were removed from the server to ensure the environment was restored to the correct permission level prior to the change.