Configuration Manager | Database Compatibility level

Estimated reading time: 2 minuty

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.

Rysunek 1. Kreator importowania sterowników.

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.

Rysunek 2. Informacja o poziomie kompatybilności bazy SQL dla serwera ConfigMgr.

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.

Strona główna » Configuration Manager | Database Compatibility level
Ten wpis został opublikowany w kategorii Configuration Manager i oznaczony tagami . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są dane Twoich komentarzy.