As you are all aware, the old Orchestrator console was built on Silverlight and Silverlight has been completely discontinued. Read more about the Silverlight announcement in the following link.

https://www.microsoft.com/Silverlight/

So, Microsoft built a brand-new web console for System Center Orchestrator 2019. The new web console works well on modern browsers without Silverlight dependency. This console will only work SCORCH 2019 onwards.

After following the below article to set up the new SCO API, I am not able to see any of the Runbooks.

To Test the API connection have run the following command in PowerShell but Can’t see any of the runbooks.

Invoke-RestMethod http://localhost:85/api/runbooks -UseDefaultCredentials -Outfile runbooks.json

The command returns an empty list of runbooks, even though I have several runbooks in my Orchestrator environment.

But when I am running it for folder, I could see all the folders.

Invoke-RestMethod http://localhost:85/api/Folders-UseDefaultCredentials -Outfile folders.json

In this blog post, I will show you how to troubleshoot this issue and make sure that your new web console can display and run your runbooks.

– Why we can see the runbooks is because when we are computing the authorization cache, only 1 SP got executed and it creates the token, and it got timed out. However, when we are trying to run it again, we don’t see the folders.

– The reason is while we are computing, due to the fact it got timed out and a token got generated, we never got into the following statement.

IF EXISTS (SELECT 1 FROM [Microsoft.SystemCenter.Orchestrator.Internal].AuthorizationCache WHERE [TokenId] = @TokenId)
BEGIN
RETURN;
END
exec [Microsoft.SystemCenter.Orchestrator.Internal].ComputeRunbookAuthorizationCache @TokenId
exec [Microsoft.SystemCenter.Orchestrator.Internal].ComputeFolderAuthorizationCache @TokenId
END
GO

– When we are trying to compute the authorization cache, it is getting timed out.

After researching, I have created a workaround which will fix this issue. I would recommend creating a SQL job and run it every 30 minutes.

use Orchestrator
GO
Truncate table [Microsoft.SystemCenter.Orchestrator.Internal].AuthorizationCache
DECLARE @secToken INT
DECLARE tokenCursor CURSOR FOR
SELECT Id
FROM [Microsoft.SystemCenter.Orchestrator.Internal].SecurityTokens 
where ExpirationTime >= GETUTCDATE()
OPEN tokenCursor
FETCH NEXT FROM tokenCursor
INTO @secToken
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Computing Authorization Cache for Security Token: ' + Convert(Nvarchar, @secToken)
exec [Microsoft.SystemCenter.Orchestrator].ComputeAuthorizationCache @TokenId = @secToken
FETCH NEXT FROM tokenCursor
INTO @secToken
END
CLOSE tokenCursor
DEALLOCATE tokenCursor