Wykorzystując funkcjonalność Operating System Deployment w SCCM instalujemy system na komputerze. Jednym z kroków sekwencji jest, oczywiście, instalacja agenta SCCM.

Zdarza się jednak, iż do agenta chcemy/musimy zainstalować poprawki, np takie jak:

czy też inne. Jak to uczynić?  Pierwszy z powyższych linków sugeruje pewne rozwiązanie :

To install the KB977384 hotfix during a ConfigMgr 2007 OSD task sequence, follow these steps:

  1. Apply the hotfix on the site server.
  2. When the hotfix has been applied on the site server, the ConfigMgr 2007 client installation files will be updated to include the KB977384 hotfix in the directory \i386\hotfix\KB977384\ of the ConfigMgr 2007 client installation files. Because the ConfigMgr 2007 client installation files have been updated, make sure to update the distribution points where the ConfigMgr 2007 client installation package resides.
  3. Right-click the task sequence that you need to change, and then click Edit.
  4. Click Setup windows and ConfigMgr.
  5. In the Installation properties box, type the following:

    PATCH="%_SMSTSMDataPath%\OSD\<Package_ID>\i386\hotfix\KB977384\SCCM2007AC-SP2-KB977384-x86-enu.msp

Powyższa metoda zadziała właściwie tylko wtedy, gdy mamy jedną partycję na instalowanym systemie. Przy wielu partycjach jest możliwe iż poprawka (a nawet sam agent) nie zostanie poprawnie zainstalowana.
W logu client.msi.log znajdziemy wtedy wpis, mniej więcej jak poniżej:

Unable to create a temp copy of patch  ‘<jakas_litera>:\_SMSTaskSequence\OSD\PS100004\i386\hotfix\<jakis_hotfix>.msp

 

Jak sobie z tym poradzić ? Mam nadzięję iż poniżej przedstawiona rada będzie pomocna:

Założenia: Rozwiązanie poniżej zakłada, że instalowany jest Windows 7. Owa instalacja powinna utworzyć partycję pod środowisko startowe (umożliwiające, zarazem, włączenie funkcjonalności Bitlocker), patycję systemową na system Windows oraz dodatkowa partycję na dane.

Standardowa  sekwencja OSD (bez dodatkowych sterowników i aplikacji), instalująca Operating System Image, zawierająca 3 partycje, wyglądałaby więc tak:
image

image

image

image

To co jest najważniejsze na powyższych zrzutach ekranowych , to uczynienie pierwszej partycji startową, oraz wpisanie nazwy nowej zmiennej task sequence, pod którą zostanie wstawiona litera partycji systemowej. W moim przykładzie owa zmienna to Part_System.

Kolejna ważna sprawa, o której nie można zapomnieć, to poinformowanie sekwencji na którą z tych partycji ma być zainstalowany obraz systemu:

image

Czynimy to poprzez wybranie Logical drive letter stored in a variable  na dole okna kroku Apply Operating System i podanie tam zmiennej, pod którą jest zapamiętana litera partycji z przeznaczeniem na obraz systemu (Part_System w moim przypadku).

Mając tak skonfigurowaną sekwencję, tuż po spartycjonowaniu systemu, litery partycji mogą przedstawiać się następująco:

  • Partycja 1 (startowa): Litera C:
  • Partycja 2 (systemowa): Litera D:
  • Partycja 3 (dane) : Litera E:

Powyższa “literacja” zostanie utrzymana aż do pierwszego restartu maszyny w ramach kroku “Setup windows and ConfigMgr”. Potem partycja systemowa przyjmnie wartość C:, partycja na dane D:, zaś partycja startowa zostanie pozbawiona litery.
Właśnie te zmiany liter powodują problem z instalacja poprawek do agenta SCCM podczas jego instalacji w ramach sekwencji.
Jeśli skorzystamy z parametru  instalacji PATCH="%_SMSTSMDataPath%\OSD\<Package_ID>\i386\hotfix\<jakis_patch>.msp , to zmienna %_SMSTSMDataPath%  będzie wskazywać na tą partycję, która tuż po partycjonowaniu miała najwięcej miejsca. Jaka by ta partycja nie była, istnieje  prawdopodobieństwo, iż po restarcie, zmienna owa będzie wskazywac na niewłaściwią  ścieżkę , a więc poprawka (a nawet i agent) zainstalowana nie będzie. Co więc tu zrobic?

Proponuję skopiować poprawkę w takie miejsce na dysku lokalnym, które będzie “pewne”. Na przykład katalog: c:\windows\system32\ccmsetup\hotfix. Nastepnie wskazać ów katalog jako źródło poprawek. Oto sposób realizacji tego zadania:

W sekwencji , przed krokiem “Setup windows and ConfigMgr” dodajemy nowy krok, typu Run Command Line, i wpisujemy w nim komendę: cmd /c "mkdir %Part_System%\windows\system32\ccmsetup\hotfix" & xcopy /e i386\hotfix %Part_System%\windows\system32\ccmsetup\hotfix
W tym kroku także wskazujemy paczkę z agentem SCCMa. Tak wstawiony krok może wyglądać następująco:

image

Następnie wystarczy zmienić parametr PATCH tak, by wskazywał na pliki w katalogu c:\windows\system32\ccmsetup\hotix. W przypadku poprawki powiązanej z SCCM 2007 R3, parameter PATCH mógłby wyglądać następująco: PATCH="c:\windows\system32\ccmsetup\hotfix\KB977384\SCCM2007AC-SP2-KB977384-x86-enu.msp

image

Po takiej zmianie hotfix, wraz z agentem, powinien się pomyślnie zainstalować :-)

 

 

Uwaga: Powyższe informacje są udostepnione w takiej formie jak powyższa, bez żadnych gwarancji , nie przyznaje żadnych praw oraz nie jest wspierana przez autora czy firmę Microsoft.