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 » Strona 2
Zaszufladkowano do kategorii Configuration Manager | Otagowano | Dodaj komentarz

Patch My PC | Instalacja

Estimated reading time: 10 minut

Strona główna » Strona 2

Patch my PC jest narzędziem, dzięki któremu mogę zautomatyzować część zadań związanych z przygotowaniem aplikacji. Poniżej opisałem konfigurację integracji Patch my PC z serwerem ConfigMgr.

Konfiguracja Third-party software updates certificate

Instalacja aplikacji jest bardzo prosta. Wystarczy ją pobrać i zainstalować. Zanim jednak zacznę z niej korzystać, muszę ją odpowiednio skonfigurować. Do tego jest potrzebna podstawowa wiedza z zakresu certyfikatów oraz wdrażania aktualizacji firm trzecich.

Aktualizacje wdrażane przez serwer WSUS zawsze są podpisywane cyfrowo, w celu zabezpieczenia systemu przed instalacją aktualizacji z niezaufanego źródła. Jeśli chcę dodać do serwera WSUS inne aktualizacje niż firmy Microsoft, muszę zadbać o to, aby były one podpisane odpowiednim certyfikatem. Ten certyfikat może być certyfikatem self-signed lub zostać wygenerowany w usłudze PKI.

Integrując Patch my PC z serwerem ConfigMgr muszę wcześniej włączyć na serwerze opcję Enable third-party software updates. Umożliwi to zarządzanie przez serwer ConfigMgr instalacją aktualizacji nie tylko firmy Microsoft, ale również Dell, Lenovo , HP, Patch my PC, Patch Connect Plus i innych publikowanych na serwerze WSUS.

Rysunek 1. Konfiguracja third-party software updates na serwerze ConfigMgr.

Podczas tej konfiguracji tworzony jest certyfikat, którym zostaną podpisane wszystkie aktualizacje publikowane na serwerze WSUS, nie pochodzące od firmy Microsoft.

Rysunek 2. Informacja w logach serwera ConfigMgr o wykorzystaniu certyfikatu do podpisywania aktualizacji.

Certyfikat jest zapisany na serwerze, na którym jest zainstalowany serwer WSUS w folderze WSUS.

Rysunek 3. Certyfikat self-signed do podpisywania aktualizacji.

Certyfikat ten, przy pomocy polisy GPO, musi zostać wdrożony na każdej stacji zarządzanej przez serwer ConfigMgr w dwóch folderach certyfikatów: Trusted Publishers oraz Trusted Root Certification.

Dopóki nie zmienię w Client Settings opcji Enable third-party sofwtare update, klient serwera ConfigMgr nie będzie wdrażał aktualizacji nie pochodzących z Microsoft. Opcja jest domyślnie wyłączona.

Rysunek 4 Ustawienie Client Settings do wdrażania aktualizacji firm trzecich.

Po sprawdzeniu ustawień serwera ConfigMgr przechodzę do konfiguracji Patch my PC.

Konfiguracja certyfikatu używanego przez Patch my PC

Na konsoli Patch my PC sprawdzam, czy aplikacja może skorzystać z wcześniej przygotowanego certyfikatu. Jeśli została ona zainstalowana na systemie, gdzie certyfikaty dla serwera WSUS są dostępne, to na konsoli Patch My PC zostanie wyświetlony komunikat o użytym certyfikacie oraz dacie jego wygaśnięcia.

Rysunek 5. Informacja na konsoli Patch my PC o używanym certyfikacie.

Warto sprawdzić, czy certyfikat może być użyty przez Patch my PC. Do tego używam opcji Show Certificates. Tak sprawdzam czy system, na którym działa Patch my PC ma poprawną konfigurację certyfikatów. Na każdym systemie, na którym będą instalowane aktualizacje firm trzecich ten certyfikat musi być obecny w dwóch folderach: Trusted Publishers oraz Trusted Root Certification.

Rysunek 6. Sprawdzanie certyfikatu do podpisywania aktualizacji firm trzecich,

Konfiguracja polisy GPO

Certyfikaty używane podczas instalacji aktualizacji firm trzecich wdrażam przy pomocy GPO. Oprócz tego muszę jeszcze wdrożyć polisę GPO, z ustawieniami pozwalającymi na instalację aktualizacji firm trzecich przez usługę Windows Update Agent.

Rysunek 7. Polisa pozwalająca na instalacje aktualizacje firm trzecich.

Sprawdzanie poprawności konfiguracji w rejestrze systemu

Polisy GPO działają na ogół bez problemów. Mimo to zawsze sprawdzam czy ustawienia są poprawne, przy pomocy polisy Compliance Settings. Tutaj Compliance Items opisałem jak sprawdzić, czy opcja Allow signed updates from an internet Microsoft update service location jest poprawnie skonfigurowana. Musi być ona włączona, żeby Windows Update Agent mógł instalować aktualizacje firm trzecich.

Konfiguracja repozytorium na pliki instalacyjne aplikacji

Do poprawnego działania Patch my PC z serwerem ConfigMgr muszę wskazać miejsce gdzie będą zapisywane pobrane z Internetu pliki instalacyjne aplikacji.

Rysunek 8. Repozytorium pików dla Patch my PC.

Konfiguracja Advanced Options

Nie każde oprogramowanie dostępne w Patch my PC może zostać pobrane przez aplikację. Niektóre z nich można pobrać tylko po zalogowaniu do portalu producenta, albo po akceptacji postanowień EULA. W takim wypadku muszę wskazać gdzie lokalnie pobrałem te pliki.

Rysunek 9. Lokalne repozytorium dla aplikacji pobieranych ręcznie.

Domyślnie logi zawierają w sobie informacje z 28 ostatnich dni. Jęsli będę potrzebował, mogę tę wartość zmienić.

Rysunek 10. Konfiguracja jak długo logi przechowują dane.

Podczas publikowania aktualizacji na serwerze WSUS, pliki są pobierane z Internetu i czasowo zapisywane we wskazanym folderze. Po publikacji są one z tego katalogu kasowane.

Rysunek 11. Wskazanie katalogu w którym są zapisywane czasowo pobierane aplikacje.

Dane zbierane przez serwer ConfigMgr o instalacji aktualizacji mogę przeglądać przy pomocy Patch Insights.

Rysunek 12. Link do pobrania Patch Insights.

Zawsze staram się tworzyć kopie zapasowe. Patch my PC też ma możliwość automatycznego zapisywania we wskazanym folderze pliku ze swoją konfiguracją.

Rysunek 13. Konfiguracja kopii zapasowej z ustawieniami Patch my PC.

Oprócz kopii zapasowej mogę również zrobić eksport list aplikacji, zarządzanych przez Patch my PC.

Rysunek 14. Eksport danych o aplikacjach zarządzanych przez Patch my PC.

Patch my PC może pracować w kilku różnych trybach:

  • tylko z usługą Intune,
  • z usługą Intune i z serwerem WSUS,
  • z usługą Intune, z serwerem WSUS oraz z serwerem Configuration Manager.
Rysunek 15. Konfiguracja Patch my PC do pracy tylko z usługą Intune.

W trakcie przygotowywania pliku intunewin plik jest on cyfrowo zabezpieczony. Standardowo nie ma możliwości eksportu tego co się w nim znajduje. Patch my PC umożliwia zapisywanie danych zabezpieczających, dzięki którym można wykonać eksport z pliku intunewin.

Rysunek 15. Konfiguracja danych zabezpieczających plik intunewin.

Certyfikat używany do podpisywania aktualizacji i aplikacji może „niespodziewanie” wygasnąć, jeśli zapomniałem go sprawdzić. Domyślnie jest ustawione, że jeśli ten certyfikat wygasł, to publikowanie aktualizacji zakończy się błędem. Mogę jednak ustawić, że mimo wygaśnięcia certyfikatu, serwer WSUS nadal mu ufa, mimo że certyfikat już wygasł.

Rysunek 16. Konfiguracja timestamping.

Konfiguracja powiadomień

Patch my PC może wysyłać powiadomienia. Są to powiadomienia o publikacji aplikacji, wysyłane mailem albo informacją na Teamsa.

Rysunek 17. Konfiguracja powiadomień.

Konfiguracja harmonogramu synchronizacji

Publikacja aplikacji lub nowych wersji może odbywać się po każdej synchronizacji danych wykonywanej przez Patch my PC. Synchronizacja może być też wyłączona, ale wtedy publikacja nowych wersji aplikacji będzie się odbywać po ręcznym uruchomieniu synchronizacji w Patch my PC.

Rysunek 18.Konfiguracja Synchronizacji Patch my PC.

Version Details

Na zakładce About ustawiam czy Patch my PC ma sprawdzić czy są nowe wersje i je automatycznie instalować.

Rysunek 19.Ustawienia aktualizacji Patch my PC.
Zaszufladkowano do kategorii Configuration Manager, Patch My PC, Patch My PC Updates, Software Updates, WSUS | Otagowano , , | Dodaj komentarz