Instalacja agenta SCCM 2007 + patche w ramach task sequence z wieloma partycjami
Wykorzystujac funkcjonalnosc Operating System Deployment w SCCM instalujemy system na komputerze. Jednym z kroków sekwencji jest, oczywiscie, instalacja agenta SCCM.
Zdarza sie jednak, iz do agenta chcemy/musimy zainstalowac poprawki, np takie jak:
- Description of the prerequisite hotfix for System Center Configuration Manager 2007 R3
- You cannot import a driver into an OSD image if the driver is signed for only the Windows 7 operating system in SCCM 2007 SP2
czy tez inne. Jak to uczynic? Pierwszy z powyzszych linków sugeruje pewne rozwiazanie :
To install the KB977384 hotfix during a ConfigMgr 2007 OSD task sequence, follow these steps:
Apply the hotfix on the site server.
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.
Right-click the task sequence that you need to change, and then click Edit.
Click Setup windows and ConfigMgr.
In the Installation properties box, type the following:
PATCH="%_SMSTSMDataPath%\OSD\<Package_ID>\i386\hotfix\KB977384\SCCM2007AC-SP2-KB977384-x86-enu.msp
Powyzsza metoda zadziala wlasciwie tylko wtedy, gdy mamy jedna partycje na instalowanym systemie. Przy wielu partycjach jest mozliwe iz poprawka (a nawet sam agent) nie zostanie poprawnie zainstalowana.
W logu client.msi.log znajdziemy wtedy wpis, mniej wiecej jak ponizej:
Unable to create a temp copy of patch ‘<jakas_litera>:\_SMSTaskSequence\OSD\PS100004\i386\hotfix\<jakis_hotfix>.msp
Jak sobie z tym poradzic ? Mam nadzieje iz ponizej przedstawiona rada bedzie pomocna:
Zalozenia: Rozwiazanie ponizej zaklada, ze instalowany jest Windows 7. Owa instalacja powinna utworzyc partycje pod srodowisko startowe (umozliwiajace, zarazem, wlaczenie funkcjonalnosci Bitlocker), patycje systemowa na system Windows oraz dodatkowa partycje na dane.
Standardowa sekwencja OSD (bez dodatkowych sterowników i aplikacji), instalujaca Operating System Image, zawierajaca 3 partycje, wygladalaby wiec tak:
To co jest najwazniejsze na powyzszych zrzutach ekranowych , to uczynienie pierwszej partycji startowa, oraz wpisanie nazwy nowej zmiennej task sequence, pod która zostanie wstawiona litera partycji systemowej. W moim przykladzie owa zmienna to Part_System.
Kolejna wazna sprawa, o której nie mozna zapomniec, to poinformowanie sekwencji na która z tych partycji ma byc zainstalowany obraz systemu:
Czynimy to poprzez wybranie Logical drive letter stored in a variable na dole okna kroku Apply Operating System i podanie tam zmiennej, pod która jest zapamietana litera partycji z przeznaczeniem na obraz systemu (Part_System w moim przypadku).
Majac tak skonfigurowana sekwencje, tuz po spartycjonowaniu systemu, litery partycji moga przedstawiac sie nastepujaco:
- Partycja 1 (startowa): Litera C:
- Partycja 2 (systemowa): Litera D:
- Partycja 3 (dane) : Litera E:
Powyzsza “literacja” zostanie utrzymana az do pierwszego restartu maszyny w ramach kroku “Setup windows and ConfigMgr”. Potem partycja systemowa przyjmnie wartosc C:, partycja na dane D:, zas partycja startowa zostanie pozbawiona litery.
Wlasnie te zmiany liter powoduja problem z instalacja poprawek do agenta SCCM podczas jego instalacji w ramach sekwencji.
Jesli skorzystamy z parametru instalacji PATCH="%_SMSTSMDataPath%\OSD\<Package_ID>\i386\hotfix\<jakis_patch>.msp , to zmienna %_SMSTSMDataPath% bedzie wskazywac na ta partycje, która tuz po partycjonowaniu miala najwiecej miejsca. Jaka by ta partycja nie byla, istnieje prawdopodobienstwo, iz po restarcie, zmienna owa bedzie wskazywac na niewlasciwia sciezke , a wiec poprawka (a nawet i agent) zainstalowana nie bedzie. Co wiec tu zrobic?
Proponuje skopiowac poprawke w takie miejsce na dysku lokalnym, które bedzie “pewne”. Na przyklad katalog: c:\windows\system32\ccmsetup\hotfix. Nastepnie wskazac ów katalog jako zródlo 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 komende: cmd /c "mkdir %Part_System%\windows\system32\ccmsetup\hotfix" & xcopy /e i386\hotfix %Part_System%\windows\system32\ccmsetup\hotfix
W tym kroku takze wskazujemy paczke z agentem SCCMa. Tak wstawiony krok moze wygladac nastepujaco:
Nastepnie wystarczy zmienic parametr PATCH tak, by wskazywal na pliki w katalogu c:\windows\system32\ccmsetup\hotix. W przypadku poprawki powiazanej z SCCM 2007 R3, parameter PATCH móglby wygladac nastepujaco: PATCH="c:\windows\system32\ccmsetup\hotfix\KB977384\SCCM2007AC-SP2-KB977384-x86-enu.msp
Po takiej zmianie hotfix, wraz z agentem, powinien sie pomyslnie zainstalowac :-)
Uwaga: Powyzsze informacje sa udostepnione w takiej formie jak powyzsza, bez zadnych gwarancji , nie przyznaje zadnych praw oraz nie jest wspierana przez autora czy firme Microsoft.