Estimated reading time: 2 minuty
Tabela zawartości
Wspierane wersje SQL dla serwera Configuration Manager
Bazę danych dla serwera ConfigMgr można zainstalować na serwerze SQL 2022 lub niższej. Jedynym warunkiem wstępnym sprawdzanym przed rozpoczęciem instalacji jest to czy serwer SQL został zainstalowany z odpowiednim ustawieniem collation. Wszystko działa poprawnie do czasu kiedy importujemy sterowniki i chcemy dla nich przygotować paczkę dystrybucyjną.
Od dawna w projektach nie miałem potrzeby importować sterowników do bazy danych serwera ConfigMgr. Sterowniki instaluje podczas wdrażania systemu operacyjnego przy pomocy dism.exe.
Błąd podczas importu sterowników – Not found , property = CI_ID
Import sterowników jest standardową procedurą przy przygotowaniu wdrożenia systemu operacyjnego przy pomocy serwera ConfigMgr.

Jednak jest taka konfiguracja serwera ConfigMgr, w której import jakichkolwiek sterowników zakończy się błędem – Not found , property = CI_ID. Poniżej opis tego błędu.
Not found
-------------------------------
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlQueryException
Not found , property = CI_ID
Stack Trace:
at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlResultObjectBase.get_Item(String name)
at Microsoft.ConfigurationManagement.AdminConsole.Driver.DriverConfigurationItemInfo.Equals(Object obj)
at System.Collections.Generic.ObjectEqualityComparer`1.Equals(T x, T y)
at System.Collections.Generic.List`1.Contains(T item)
at Microsoft.ConfigurationManagement.AdminConsole.Driver.ImportDriverWizardForm.AddDriverDataToList(List`1 driversToAdd, List`1 allDrivers)
at Microsoft.ConfigurationManagement.AdminConsole.Driver.ImportDriverWizardForm.PostApply(BackgroundWorker worker, DoWorkEventArgs e)
at Microsoft.ConfigurationManagement.AdminConsole.ProgressPage.backgroundWorkerPostApply_DoWork(Object sender, DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
-------------------------------
System.Management.ManagementException
Not found
Stack Trace:
at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlResultObjectBase.get_Item(String name)
at Microsoft.ConfigurationManagement.AdminConsole.Driver.DriverConfigurationItemInfo.Equals(Object obj)
at System.Collections.Generic.ObjectEqualityComparer`1.Equals(T x, T y)
at System.Collections.Generic.List`1.Contains(T item)
at Microsoft.ConfigurationManagement.AdminConsole.Driver.ImportDriverWizardForm.AddDriverDataToList(List`1 driversToAdd, List`1 allDrivers)
at Microsoft.ConfigurationManagement.AdminConsole.Driver.ImportDriverWizardForm.PostApply(BackgroundWorker worker, DoWorkEventArgs e)
at Microsoft.ConfigurationManagement.AdminConsole.ProgressPage.backgroundWorkerPostApply_DoWork(Object sender, DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
Jedyny sposób na umożliwienie importu sterowników do bazy ConfigMgr to zmiana compatibility level dla bazy danych serwera.
Compatibility level dla bazy serwera ConfigMgr
Instalator serwera ConfigMgr podczas swojego działania tworzy bazę danych na serwerze SQL 2022. Automatycznie dla tej bazy jest ustawiony compability level o wartości 160. Ten poziom nie jest wspierany choć nie raz już instalował serwer ConfigMgr i wszystko działało poprawnie do momentu importu sterowników.
Microsoft jasno pisze w dokumentacji, że dopuszczany poziomu kompatybilności dla bazy serwera ConfigMgr jest wartość 150.

Zamiana poziomu nie jest trudna. Na początek sprawdzam jaki jest poziom kompatybilności dla bazy danych poleceniem jak poniżej:
SELECT name, compatibility_level
FROM sys.databases
WHERE name = 'nazwa bazy danych serwera ConfigMgr';
Jeśli poziom jest ustawiony na 160 to poleceniem jak poniżej zmieniam go na 150.
ALTER DATABASE nazwa bazy danych serwera ConfigMgr
SET COMPATIBILITY_LEVEL = 150;
Po tej zmianie import sterowników zakończy się powodzeniem.