SystemCenter

All about System Center Articles and Tutorials

Lync / Skype for Business 2015 Servers not discovered in SCOM

Posted by on Feb 13, 2017 in SCOM, SCOM 2012, SCOM 2016

Lync / Skype for Business 2015 Servers not discovered in SCOM

Applicable for: Lync 2013, Sfb 2015 with SCOM 2012, SCOM 2016.

Recently we got a request from one of our clients to check an issue wherein they added few Skype for Business 2015 servers in SCOM however those were not reflecting in the SFB Management Pack (Skype for Business Server 2015 Health) under Monitoring tab.

When we checked, the servers were showing healthy in Agent Managed view under Administration tab however reflecting as Critical under Windows Computers view.

We checked Health Explorer for the server and found Discovery Script Runner Health monitor in unhealthy state.

1

Apart from that, we found the associated alert for it. [Skype] An internal exception has occurred during discovery.

2

We checked the Alert Context and found Login failed for user NT AUTHORITY\NETWORK SERVICE while opening xds database.

Description:
DiscoverMachine.ps1 : ——————————————————————————– -Script Name: Skype for Business Server 2015 MP Machine Topology Discovery -Run as account: nt authority\network service -Execution Policy: RemoteSigned ——————————————————————————– Value of Source Id is {5AAFA97E-833F-9AD1-2678-56AFD1E2214C}. Value of ManagedEntity Id is {B10F317B-5135-074D-7F88-23E30575A9DB}. Value of Target Computer is SFBACAA.scmvp.com. SkypeForBusiness Module is added Successfully initialize discovery data. An exception occurred during discovery script, Exception : Could not connect to SQL server : [Exception=System.Data.SqlClient.SqlException (0x80131904): Cannot open database “xds” requested by the login. The login failed. Login failed for user ‘NT AUTHORITY\NETWORK SERVICE’. at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.Rtc.Common.Data.DBCore.PerformSprocContextExecution(SprocContext sprocContext) ClientConnectionId:64fcb79a-0d80-4f6f-b920-67c2fe98c204 Error Number:4060,State:1,Class:11]. ——————————————————————————–

So, in order to fix this issue, we need to add NT AUTHORITY\NETWORK SERVICE account under below groups on each server:

  • RTC Component Local Group
  • RTC Local Administrators

1: Login on to SfB Server and open Server Manager.

2: Expand Local Users and Groups under Configuration and click Groups folder.

3: Look for RTC Component Local Group and open the same by double clicking on it.

3

4: Click on Add button.

4

5: Click on Locations button and change it to local computer.

6: Type Network Service as object name and click Check Names button.

7: Click OK button.

5

NT AUTHORITY\NETWORK SERVICE account should be added under RTC Component Local Group.

6

Same way add the NT AUTHORITY\NETWORK SERVICE account under RTC Local Administrators group.

Once the Network Service account is added in both the groups, restart Microsoft Monitoring Agent service on the server.

Follow the same steps on all the affected servers.

After few minutes all the SfB servers should be visible under SFB Management Pack (Skype for Business Server 2015 Health) under Monitoring tab and the associated alert should also get closed in SCOM console.

Hope this helps.

Submit a Comment

Your email address will not be published. Required fields are marked *