I recently came across a scenario where installing SCOM 2019 fails shortly after the Operational database configuration step, specifically during the Populating User Roles sequence.
The installation account used is a member of the sysadmin SQL role and SQL server is configured to run with native security, so this behavior was not expected.
Investigating the OpsMgrSetupWizard.log
[12:48:41]: Error: :PopulateUserRoles: failed : Threw Exception.Type: System.ArgumentException, Exception Error Code: 0x80070057, Exception.Message: Value does not fall within the expected range.
[12:48:41]: Error: :StackTrace: at Microsoft.Mom.Sdk.UserRoleSetup.SetupProgram.populateUserRoles(String adminRoleGroup, String sdkAccount, InstallTypes installType, String installDirectory, Boolean overwriteExistingUsers)
at Microsoft.EnterpriseManagement.OperationsManager.Setup.ServerConfiguration.PopulateUserRoles(String adminRoleGroup, String sdkAccount, String installDirPath)
[12:48:41]: Error: :FATAL ACTION: PopulateUserRoles
[12:48:41]: Error: :FATAL ACTION: DatabaseActions
My initial thoughts were that TLS 1.2 was being enforced in the environment, but customer confirmed this was not the case. The registry on the Management Server and SQL Server did not provide any evidence of the older protocols being disabled.
Investigating the Windows System Event Log
However the Windows System Event log was flooded with the Event ID: 36871
Investigating this Event eventually pointed me to confirm the permissions set on the MachineKeys folder. When comparing the Security permissions on C:\ProgramData\Microsoft\Crypto\RSA to a clean and working Management Server installation, the Security in my customer environment included “Network Services” which doesn’t appear to be default.
After changing the Security to align with the working Management Server, SCOM installed successfully.