Активные пользователи и группы неожиданно удаляются задачей удаления устаревших данных обнаружения в Configuration Manager

Эта статья поможет устранить проблему, из-за которой некоторые активные пользователи и группы неожиданно удаляются задачей удаления устаревших данных обнаружения в Configuration Manager.

Исходная версия продукта: Configuration Manager (текущая ветка), Configuration Manager (текущая ветка — версия 1906), Configuration Manager (текущая ветка — версия 1902)
Исходный номер базы знаний: 4537087

Симптомы

В текущей ветви Configuration Manager версии 1910, 1906 или 1902 используется обнаружение пользователей Active Directory и обнаружение групп Active Directory для обнаружения пользователей и групп Active Directory. Вы также настроили задачу удаления устаревших данных обнаружения, чтобы удалять такие данные.

В этом сценарии некоторые активные пользователи и группы неожиданно удаляются задачей удаления устаревших данных обнаружения .

Причина

Задача "Удалить устаревшие данные обнаружения" использует sp_GetAgedDiscoveryItems хранимую процедуру для идентификации устаревших элементов. Активные пользователи и группы, которые не изменяются в течение указанного времени в задаче, считаются неактивными. Поэтому задача удаляет элементы.

Резолюция

Для Текущей ветви Configuration Manager версии 1910

Эта проблема устранена, если вы обновляете глобально доступный выпуск Configuration Manager current branch версии 1910 из обновления для Microsoft Endpoint Configuration Manager версии 1910, ранний цикл обновления. В противном случае выполните задачу удаления устаревших данных обнаружения неправильно удаляет активные записи в Configuration Manager , чтобы устранить эту проблему.

Для Текущей ветви Configuration Manager версии 1906 и 1902

Чтобы устранить эту проблему, выполните следующий запрос TSQL к базе данных сайта на сайте центра администрирования и первичных сайтах.

Замечание

Перед запуском запроса TSQL в рабочей среде рекомендуется протестировать его в тестовой среде и создать резервную копию баз данных сайта.

IF EXISTS( SELECT 1 FROM Sites WHERE SiteType in (4,2) AND SiteCode = dbo.fnGetSiteCode() AND (BuildNumber >=8790 AND BuildNumber <8913) )
AND NOT EXISTS (SELECT 1 FROM CM_UpdatePackages where FullVersion = '5.00.8913.1012' and State = '196612')

BEGIN
DECLARE @query as nvarchar(MAX);

SET @query = 'ALTER PROCEDURE sp_GetAgedDiscoveryItems @cutoffDate varchar(100), @discArchKey int as
begin
    set nocount on

    declare @siteRangeStart int
    declare @siteRangeEnd int
    set @siteRangeStart = dbo.fnGetSiteRangeStart()
    set @siteRangeEnd = dbo.fnGetSiteRangeEnd()

    declare @isReservedRangedSite int
    select @isReservedRangedSite =  isnull(Value3, 0) from SC_SiteDefinition_Property where SiteNumber = dbo.fnGetSiteNUmber() and Name = N''ReplicatesReservedRanges''

    if @discArchKey = 4 or @discArchKey = 3   -- user/security group
    begin
        -- user site number is 123, unknown system is 122 and max site number is 128
        -- so special range is 123*16777216 to 128*16777216-1
        select DiscArchKey, ItemKey
        from DiscItemAgents dia
        where ((ItemKey between @siteRangeStart and @siteRangeEnd) or ((ItemKey between 2063597568 and 2147483647) and @isReservedRangedSite = 1))
        group by dia.ItemKey, dia.DiscArchKey
        -- for agents honoring DueForAgeOut flag, Aged = aged for all agents on all sites
        having sum(cast(isnull(dia.DueForAgeOut, 0) AS int)) = count(dia.ItemKey)  and dia.DiscArchKey = @discArchKey
    end
    else if @discArchKey = 5 -- non-mobile devices
    begin
        select dia.DiscArchKey, dia.ItemKey
        from DiscItemAgents dia inner join System_DISC sd on dia.ItemKey = sd.ItemKey
        where ((dia.ItemKey between @siteRangeStart and @siteRangeEnd) or ((dia.ItemKey between 2063597568 and 2147483647) and @isReservedRangedSite = 1))
        group by dia.ItemKey, dia.DiscArchKey, sd.Client_Type0
        having max(AgentTime) <= @cutoffDate and dia.DiscArchKey =  @discArchKey and isnull(sd.Client_Type0, 1) = 1
    end
    else  -- other archs
    begin
        select DiscArchKey, ItemKey
        from DiscItemAgents dia
        where ((ItemKey between @siteRangeStart and @siteRangeEnd) or ((ItemKey between 2063597568 and 2147483647) and @isReservedRangedSite = 1))
        group by dia.ItemKey, dia.DiscArchKey
        having max(AgentTime) <= @cutoffDate and dia.DiscArchKey = @discArchKey
    end
end'

EXECUTE sp_executesql @query

END
ELSE
PRINT 'This script is not applicable on this site or database. Applicable on CAS\PRI on version running 1902 and 1906 only.'