SCCM client always reports to old site and management point after client installation

Group Policy Updated the assigned site code , which is different than the existing assigned site code . Will attempt re-assignment.

ISSUE

SCCM client always reports to old site and management point after client installation

The background is the I was doing a migration and was moving clients from the old sccm to their new sccm. I adopted manual sccm client installation.

In the very beginning, I used the following command to install sccm client –

ccmsetup.exe /mp:newsccm.contoso.lab /forceinstall FSP=newsccm.contoso.lab SMSMP=newsccm.contoso.lab SMSSITECODE=CON

But the client still reported to the old site. The reason is that the previous trusted key of the client still points to the one coming from the old site. This situation may occur when you move a client from one site hierarchy to another.  Thus, to update the trusted root key, I added the switch RESETKEYINFORMATION=TRUE to the ccmsetup.exe command –

cmsetup.exe /mp:newsccm.contoso.lab /forceinstall FSP=newsccm.contoso.lab SMSMP=newsccm.contoso.lab SMSSITECODE=CON RESETKEYINFORMATION=TRUE

However, the client still reports the old site. Th site code still shows OOE instead of CON and the assignment management point the old one instead of the assigned one in the command.

LOGS

LocationServices.log says a group policy updated the assigned site code to OOE, which is the old sccm site code.

01-28-2022 13:45:57.930    LocationServices    3632 (0xe30)    LSRefreshSiteCode: Group Policy Updated the assigned site code <OOE>, which is different than the existing assigned site code <>. Will attempt re-assignment.
01-28-2022 13:45:57.992    LocationServices    3632 (0xe30)    Sending Fallback Status Point message, STATEID='500'.
01-28-2022 13:45:58.195    LocationServices    3632 (0xe30)    Processing GroupPolicy site assignment.
01-28-2022 13:45:58.195    LocationServices    3632 (0xe30)    Assigning to site 'VN1'
01-28-2022 13:45:58.195    LocationServices    3632 (0xe30)    LSIsSiteCompatible : Verifying Site Compatibility for <OOE>
01-28-2022 13:45:58.211    LocationServices    4104 (0x1008)    Failed to execute task 'LSSiteRoleCycleTask'. Error 0x80004005
01-28-2022 13:45:58.211    LocationServices    4104 (0x1008)    CSiteRoleCycleTask::Execute failed (0x80004005).

The resultant group policy retrieved by running gpresult /h c:\res.html has no group policies about assigning site code. After a moment of struggling, I found it related to a registry value in the following path –

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Mobile Client: GPRequestedSiteAssignmentCode

SOLUTION

Delete the registry value and reinstall sccm client.

reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Mobile Client" /v GPRequestedSiteAssignmentCode /f
ccmsetup.exe /mp:newsccm.contoso.lab /forceinstall FSP=newsccm.contoso.lab SMSMP=newsccm.contoso.lab SMSSITECODE=CON RESETKEYINFORMATION=TRUE

After that, the issue was gone.

References

Clients show offline in SCCM console

Clients show offline in SCCM console

ISSUE

All the clients show offline with an x icon in SCCM console

Observation

CcmNotificationAgent.log

10-01-2021 12:01:27.772 BgbAgent 1820 (0x71c) Connecting to server with IP: 10.2.253.4 Port: 10123
10-01-2021 12:01:29.848 BgbAgent 1820 (0x71c) Failed to connect to server with IP v4 address with error 10061. Try next IP…
10-01-2021 12:01:29.848 BgbAgent 1820 (0x71c) Failed to signin bgb client with error = 80004005.
10-01-2021 12:02:29.856 BgbAgent 1820 (0x71c) Connecting to server with IP: 10.2.253.4 Port: 10123
10-01-2021 12:02:31.993 BgbAgent 1820 (0x71c) Failed to connect to server with IP v4 address with error 10061. Try next IP…
10-01-2021 12:02:31.993 BgbAgent 1820 (0x71c) Failed to signin bgb client with error = 80004005.
10-01-2021 16:59:16.575 BgbAgent 21004 (0x520c) Fallback to HTTP connection.
10-01-2021 16:59:16.851 BgbAgent 21004 (0x520c) [CCMHTTP] ERROR: URL=https://contoso.lab/bgb/handler.ashx?RequestType=LogIn, Port=443, Options=31, Code=0, Text=CCM_E_BAD_HTTP_STATUS_CODE
10-01-2021 16:59:16.851 BgbAgent 21004 (0x520c) [CCMHTTP] ERROR INFO: StatusCode=500 StatusText=Internal Server Error
10-01-2021 16:59:16.862 BgbAgent 21004 (0x520c) Raising event:
instance of CCM_CcmHttp_Status
{
ClientID = "GUID:C044DC1C-1935-4B0B-BEF9-AEB76A6C6989";
DateTime = "20211001085916.862000+000";
HostName = "contoso.lab";
HRESULT = "0x87d0027e";
ProcessID = 108;
StatusCode = 500;
ThreadID = 21004;
};
10-01-2021 16:59:16.866 BgbAgent 21004 (0x520c) Successfully queued event on HTTP/HTTPS failure for server 'contoso.lab'.
10-01-2021 16:59:16.867 BgbAgent 21004 (0x520c) Failed to post Login with error code 87d0027e.
10-01-2021 16:59:16.867 BgbAgent 21004 (0x520c) Failed to signin bgb client with error = 87d0027e.

Status code 500 indicates something goes wrong with the server itself. Checking if management point is in good status. The MP is installed correctly. Then I checked BGB status.

bgbsetup

10-04-2021 15:37:41.000 SMSBGB Setup Started….
10-04-2021 15:37:41.000 Parameters: E:\Program Files\Microsoft Configuration Manager\bin\x64\rolesetup.exe /deinstall /siteserver:SIN5VSCMPS001 SMSBGB 0
10-04-2021 15:37:41.000 Deinstalling the SMSBGB
10-04-2021 15:37:41.000 CTool::RegisterComPlusService: run command line: "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegSvcs.exe" /u "E:\Program Files\Microsoft Configuration Manager\bin\x64\microsoft.configurationmanager.bgbserverchannel.dll"
10-04-2021 15:37:44.000 CTool::RegisterComPlusService: Failed to unregister E:\Program Files\Microsoft Configuration Manager\bin\x64\microsoft.configurationmanager.bgbserverchannel.dll with .Net Fx 4.0
10-04-2021 15:37:44.000 Failed to unregister BGB server channel DLL E:\Program Files\Microsoft Configuration Manager\bin\x64\microsoft.configurationmanager.bgbserverchannel.dll. Error = 0x80004005.
10-04-2021 15:37:44.000 CTool::RegisterComPlusService: run command line: "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegSvcs.exe" /u "E:\Program Files\Microsoft Configuration Manager\bin\x64\BGBServer\microsoft.configurationmanager.bgbserverchannel.dll"
10-04-2021 15:37:45.000 CTool::RegisterComPlusService: Failed to unregister E:\Program Files\Microsoft Configuration Manager\bin\x64\BGBServer\microsoft.configurationmanager.bgbserverchannel.dll with .Net Fx 4.0
10-04-2021 15:37:45.000 Failed to unregister BGB server channel DLL E:\Program Files\Microsoft Configuration Manager\bin\x64\BGBServer\microsoft.configurationmanager.bgbserverchannel.dll. Error = 0x80004005.
10-04-2021 15:37:45.000 DeleteBgbServerApplication: failed to find the application
10-04-2021 15:38:03.000 Fatal MSI Error - bgbisapi.msi could not be installed.

bgbisapiMSI.log – it says there is not enough disk space while there actually sufficient disk space.

05-10-2021 10:29:46.600 MSI (s) 76 (0x4c) Doing action: CcmCheckFreeDiskSpace
05-10-2021 10:29:46.600 Action ended InstallValidate. Return value 1.
05-10-2021 10:29:46.600 MSI (s) 76 (0x4c) Note: 1: 2235 2: 3: ExtendedType 4: SELECT Action,Type,Source,Target, NULL, ExtendedType FROM CustomAction WHERE Action = 'CcmCheckFreeDiskSpace'
05-10-2021 10:29:46.600 Action start CcmCheckFreeDiskSpace.
05-10-2021 10:29:46.601 MSI (s) 76 (0x4c) Product: BGB http proxy -- There is not enough available disk space on to complete this operation. Installation requires at least 10MB free disk space.
05-10-2021 10:29:46.601
05-10-2021 10:29:46.601 There is not enough available disk space on to complete this operation. Installation requires at least 10MB free disk space.
05-10-2021 10:29:46.601 Action ended CcmCheckFreeDiskSpace. Return value 3.
05-10-2021 10:29:46.601 Action ended INSTALL. Return value 3.
05-10-2021 10:29:46.601 Property(S): UpgradeCode = {57F5D44D-5328-44DB-8DA2-EB252C1F810D}

Solution

1. Go to this registry key on the MP server: HKEY_CLASSES_ROOT\Installer\Products\

2. Find the subkey entries for the item within this key.

   A. The display name will be found under the ProductCode String Value called ProductName.

Example:  HKEY_CLASSES_ROOT\Installer\Products\86F1F994E7D7D6C4DA16688376A94C6B\

Reg String Value ProductName = ConfigMgr Management Point

  B. The actual MSI will be found in a Subkey of the ProductCode called SourceList under PackageName. For example: HKEY_CLASSES_ROOT\Installer\Products\57F5D44D-5328-44DB-8DA2-EB252C1F810D\SourceList

Reg String Value PackageName = BGBAPI.msi

3. Identify these keys, Export and backup the ProductCode subkey, eg.

HKEY_CLASSES_ROOT\Installer\Products\57F5D44D-5328-44DB-8DA2-EB252C1F810D

4. Delete the registry key  HKEY_CLASSES_ROOT\Installer\Products\57F5D44D-5328-44DB-8DA2-EB252C1F810D

6. Restart Site Component Manager service.

Attempting to view co-management properties (under \Administration\Overview\Cloud Services\Co-management\) causes the MEM console to crash

Attempting to view co-management properties (under \Administration\Overview\Cloud Services\Co-management\) causes the MEM console to crash

When trying to see the existing Co-management settings in Configuration Manager console by right click, the console crashed.

SmsAdminUI.log shows –

03-12-2021 01:30:00.000    1 (0x1)    System.Management.ManagementException
Generic failure
   at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
   at System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options)
   at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlConnectionManager.ExecuteMethod(String methodClass, String methodName, Dictionary`2 methodParameters, Boolean traceParameters)
ManagementException details:
instance of SMS_ExtendedStatus
{
               CauseInfo = "";
               Description = "SQL command failed: ";
               ErrorCode = 3242789122;
               File = "..\\sspconsoledashboards.cpp";
               Line = 72;
               ObjectInfo = "Please check SMS Provider log file for details of the SQL errors";
               Operation = "ExecMethod";
               ParameterInfo = "SMS_ConsoleDashboards";
               ProviderName = "WinMgmt";
               SQLMessage = "[42000][15517][Microsoft][SQL Server Native Client 11.0][SQL Server]Cannot execute as the database principal because the principal \"smsdbuser_ReadOnly\" does not exist, this type of principal cannot be impersonated, or you do not have permission. : spDashboardsGetChartData";
               SQLSeverity = 16;
               SQLStatus = 15517;
               StatusCode = 2147749889;
};
03-12-2021 01:30:00.000    1 (0x1)    Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlQueryException: The SMS Provider reported an error.
   ---> System.Management.ManagementException: Generic failure
   at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
   at System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options)
   at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlConnectionManager.ExecuteMethod(String methodClass, String methodName, Dictionary`2 methodParameters, Boolean traceParameters)
   --- End of inner exception stack trace ---
   at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlConnectionManager.ExecuteMethod(String methodClass, String methodName, Dictionary`2 methodParameters, Boolean traceParameters)
   at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlConnectionManager.ExecuteMethod(String methodClass, String methodName, Dictionary`2 methodParameters)
   at Microsoft.ConfigurationManagement.AdminConsole.CoManagement.CoManagementUtility.GetChartDataResultObject(ConnectionManagerBase connectionMgr, String configData, String chartGuidValue)
   at Microsoft.ConfigurationManagement.AdminConsole.CoManagement.EnablementPageControlEx.EnablementPageControl_Load(Object sender, EventArgs e)
   at System.Windows.Forms.UserControl.OnLoad(EventArgs e)
   at System.Windows.Forms.UserControl.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.ControlCollection.Add(Control value)
   at System.Windows.Forms.TabControl.ControlCollection.Add(Control value)
   at System.Windows.Forms.TabControl.TabPageCollection.Add(TabPage value)
   at Microsoft.EnterpriseManagement.ConsoleFramework.SheetFramework.AddTabs()
   at Microsoft.EnterpriseManagement.ConsoleFramework.SheetFramework.OnLoad(EventArgs e)
   at Microsoft.ConfigurationManagement.AdminConsole.DialogFramework.Forms.SmsPropertySheet.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Solution

Run in the site database to create the missing smsdbuser_Readonly and grant permissions:

/****** Object:  User [smsdbuser_ReadOnly]    Script Date: 4/9/2021 3:42:21 PM ******/
CREATE USER [smsdbuser_ReadOnly] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo]
GO
GRANT EXECUTE ON [dbo].[spGetTopNonComplianceReasons] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetDHAClientTypeCounts] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spPerformanceCounterStateMessages] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetDeviceIdsByComplianceStatus] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthScenarioHealth] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spPerformanceCounterRegistration] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthCombinedScenarioHealthDrillThrough] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spPerformanceCounterHinvMgr] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthAllScenarioHealth] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spCoManagementClientCommandLine] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthClientOSVersion] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spDTPGetIOSDeviceCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetCMGStatistics] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetModelType] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOSDistribution] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthPercentage] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthClientVersion] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetM365UpgradeDecisionData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetBGBStatistics] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetPerformanceCounter] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spDTPGetDevicesByClassification] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetM365ConnectedDevicesData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthScenarioHealthDrillThrough] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeMacroHealthSummary] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetUAComputerCounts] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthPercentageDrillThrough] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetUATelemetryCounts] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeTopAddinVersionCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetM365ProdReadinessData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spDTPGetTopClassifications] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetVersion] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetO365ClientCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetEnrollmentErrors] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetEdgeDeviceCounts] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetDHAUsage] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetEdgeInstalledBrowsers] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetDHASettingsCounts] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetEdgeVersions] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spPODGetPhaseDeploymentData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetCoMgmtEnrollmentStatus] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthClientOSVersionDrillThrough] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetAADStatistics] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthAllScenarioHealthDrillThrough] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spDTPGetAndroidDevices] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetM365ConnectionHealthData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetMostRecentCloudServiceHistRecordID] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetM365ConnectionData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeDevicesNotMeetingHealthGoalsCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeDevicesReadyToDeploy] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeMacroAdvisoryCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetEdgeBrowserUsage] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetRecommendedPilotDevices] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthDashboard] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetUpdatesComplianceCounts] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeAddinReadinessCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetMDMWorkloadEnabledCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetM365TopConfigErrors] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spDTPGetAndroidDeviceCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeDevicesWithMacrosCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeAddinSupportCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetO365Languages] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthClientVersionDrillThrough] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spDTPGetIOSDevices] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spDTPGetDeviceThreatLevel] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spDTPGetDevicesByComplianceStatus] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeDevicesWithProPlusCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spPerformanceCounterGetPolicy] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeDevicesSendingHealthData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spPerformanceCounterDDRMgr] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeAddinHealthSummary] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spPerformanceCounterTotalClients] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeReadinessCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetM365PilotReadinessData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetEdgeDefaultBrowsers] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetDevicesFromNonComplianceReason] TO[smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spPODGetSuccessCriteriaData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOfficeMacroReadinessCount] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetPODMetadata] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetDHAComplianceCounts] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetCoManagementStatus] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthErrors] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetTopMissingUpdates] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetFirmwareVersion] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetO365Channels] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spPerformanceCounterSinvMgr] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetOverallDeviceCompliance] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetM365DeploymentPlanData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetO365Versions] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetDHAUnknownIDs] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetClientHealthCombinedScenarioHealth] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGetUpdateCategoriesData] TO [smsdbuser_ReadOnly]
GRANT EXECUTE ON [dbo].[spGet365Data] TO [smsdbuser_ReadOnly]

How do I get the grant permission queries? Refer to – View all securables for roles in SQL Server database? – Stack Overflow

You just need to add one Where condition to the query to get grant permissions for smsdbuser_ReadOnly

SELECT (case when state_desc like 'GRANT%' then 'GRANT' else state_desc end)
' ' + database_permissions.permission_name
CASE database_permissions.class_desc
WHEN 'SCHEMA' THEN ' ON SCHEMA::[' + schema_name(major_id) + ']'
WHEN 'OBJECT_OR_COLUMN' THEN ' ON '
+ isnull('[' + schema_name(objects.schema_id) + '].', '') + '['
+ (CASE WHEN minor_id = 0 THEN object_name(major_id) + ']' COLLATE Latin1_General_CI_AS_KS_WS
ELSE (SELECT object_name(object_id) + '] (['+ name + '])'
FROM sys.columns
WHERE object_id = database_permissions.major_id
AND column_id = database_permissions.minor_id) end)
WHEN 'DATABASE_PRINCIPAL' THEN ' ON USER::[' + USER_NAME(major_id) + ']'
WHEN 'DATABASE' Then ''
WHEN 'SERVICE_CONTRACT' then ' ON CONTRACT::['
+ (select name
from sys.service_contracts
where service_contract_id = major_id)
+ ']'
ELSE ' <<' + database_permissions.class_desc + '>>'
END
' TO [' + database_principals.name + ']'
(case when state_desc = 'GRANT_WITH_GRANT_OPTION' then ' WITH GRANT OPTION' else '' end)
COLLATE Latin1_General_CI_AS_KS_WS
FROM sys.database_permissions
inner JOIN sys.database_principals
ON database_permissions.grantee_principal_id = database_principals.principal_id
LEFT JOIN sys.objects
ON objects.object_id = database_permissions.major_id
WHERE database_permissions.major_id > 0 and database_principals.name = 'smsdbuser_ReadOnly'

How to change client Configuration Manager client cache size

How to change client Configuration Manager client cache size

The Configuration Manager client cache on Windows computers stores temporary files used to install applications and programs. If this option is set to No, the default size is 5,120 MB.

There are two items that you can set –

  • Maximum cache size (MB)
  • Maximum cache size (percentage of disk)

The client cache size expands to the maximum size in megabytes (MB), or the percentage of the disk, whichever is less.

You can change the client cache size on a single machine by the follow steps –

  1. Go to Control Panel > Configuration Manager Client Properties > Cache
  2. Click on Configure Settings and change the value of cache size
  3. Click OK

Or you can use the following PowerShell script –

$Cache = Get-WmiObject -Namespace 'ROOT\CCM\SoftMgmtAgent' -Class CacheConfig
$Cache.Size = '10240'
$Cache.Put()
Restart-Service -Name CcmExec

References

Design a site like this with WordPress.com
Get started