Проблема обновления коллекций в System Center 2012 R2 Configuration Manager

imageПосле установки нового сайта столкнулись с проблемой – перестали обновляться коллекции. Проблема имела место быть только на новом сайте, при том, что вновь созданные коллекции минимум 1 раз обновлялись, остальные коллекции либо не обновлялись вообще, либо процесс обновления мог занять несколько недель.

Предположений была масса, самостоятельно решить проблему не получалось, открыли обращение в техническую поддержку Microsoft.

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

Конечно, я не переставал гуглить и не терял надежду, искав тех, кто мог столкнуться с такими же не понятными проблемами, чтоб как-то помочь инженеру поддержки и скорее восстановить работоспособность сайта.

Наткнулся на интересные статьи, в которых зарубежные коллеги пишут про подобные проблемы с коллекциями и утверждают примерно следующее: ”Максимально допустимое количество коллекций с включенным инкрементальным обновлением – 200, в противном случае, могут быть проблемы.” Посчитав количество коллекций с инкрементальным обновлением в нашей инфраструктуре, пришёл к выводу, что это действительно может быть наш случай, т.к. у нас их было ~700. Инженер подтвердил эту информацию и прислал PowerShell скрипт для отключения инкрементального обновления на всех не системных коллекциях:

Function Disable-IncrementalCollectionUpdates
 {
 # sccm2k12r2 -- FQDN сервера на котором будет выполнятся скрипт.
 $ServerName = "sccm2k12r2"
 $SiteCode = @(Get-WmiObject -Namespace root\sms -Class SMS_ProviderLocation -ComputerName $ServerName)[0].SiteCode
 $Count = 0
 gwmi sms_collection -computer $ServerName `
 -namespace root\sms\site_$SiteCode | foreach {
 $Coll = [wmi] $_.__Path
 if ($Coll.RefreshType -eq 4 -And $Coll.CollectionID -notlike "SMS*") {
 write-host "Disabling Incremental Updates on: " $Coll.CollectionID "`t" $Coll.Name -ForegroundColor Yellow
<#
Изменение параметров обновления коллекции
1 -- Отключено
2 -- Только полное
4 -- Только инкрементальное
6 -- Инкрементальное и полное
#>
 $Coll.RefreshType = 2
 $Coll.Put() | Out-Null
 $Count ++
 }
 }
 Write-Host $Count "Collections were updated."
 }
 
 Disable-IncrementalCollectionUpdates

И скрипт для отображения коллекций с заданным типом обновления:

#sccm2k12r2 -- FQDN сервера на котором будет выполнятся скрипт.
#PR1 -- сайт
gwmi sms_collection -computer sccm2k12r2 `
  -namespace root\sms\site_PR1 | foreach {
  $Coll = [wmi] $_.__Path
if ($Coll.RefreshType -eq 2) {
        write-host $Coll.CollectionID "`t" $Coll.Name
    }
}

Оба скрипта используют WMI и распространяются как на коллекции устройств так и пользователей, что удобнее, чем использовать CM командлеты PowerShell.

К сожалению, в нашем случае, результата это не принесло, и положение не изменилось. Но через пару месяцев, решение было найдено:

Наша проблема заключалась в кастомных коллекциях с неизвестными компьютерами, которые используются для развёртывания ОС. Процедура обновления коллекций (dbo.sp_TransferMembership) по какой-то причине не отфильтровывала неизвестные компьютеры, обновление завершалось с ошибкой.

В логе Colleval.log подобная проблема отображается сообщением: [Auxiliary Evaluator] Error refreshing collection, will retry momentarily [CAS00014, Error 0xb].

image

Где “CAS00014” идентификатор проблемной коллекции.

Решения у подобной проблемы два:

1. Можно удалить и создать коллекцию заново;

2. Можно очистить членство, подождать до тех пор, пока ошибка в логе перестанет повторяться затем заполнить членство повторно.

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

Материалы которые удалось найти в процессе решения проблемы:

1. SC 2012 Configuration Manager – How to Identify How Many Incremental Collections You Have
2.
ConfigMgr 2012 Script for Incremental Collection threshold
3.
Collections not being refreshed in ConfigMgr 2012 R2
4.
Constant hourglass on some collections. Colleval.log errors

Добавить комментарий