Windows Server 2008 - KB961260 ja Server Manager Refresh Error »

Sain vastaani pari viikkoa sitten harvinaisen epämiellyttävään ongelmaan, johon ei toistaiseksi juuri vinkkejä ole ollut tarjolla, joten jos joku siellä tuskailee saman ongelman kanssa, niin toivottavasti tästä artikkelista on apua.

Johdanto

Helmikuun 10. päivä julkaistiin jälleen joukko Microsoftin päivityksiä, joista yksi, kb961260, aiheutti allekirjoittaneelle ylimääräisiä haasteita. No, itse ongelma saattaa olla jossain toisaalla, mutta tämän kohdalla se tuli esiin.

Olin suorittamassa "rutiinipätsäystä" yhdelle Windows Server 2008 Standard Edition x64 palvelimelle, joka osoittautuikin kaikkea muuta kuin rutiiniksi. Tällä kertaa päivitys ei mennytkään läpi onnistuneesti, kuten kaikki Windows Server 2008:n päivitykset olivat tähän asti menneet. Tämä haasteellinen päivitys oli siis kumulatiivinen IE 7:n päivitys kb961260.

Logimerkinnät

Epäonnistuneen päivityksen jälkeen Event Viewer:sta löytyi oheinen virheilmoitus:

"Installation Failure: Windows failed to install the following update with error 0x800b0100: Cumulative Security Update for Internet Explorer 7 for Windows Server 2008 x64 Edition (KB961260)."

Pikainen katsaus administratiivisiin tapahtumiin paljasti myös seuraavan eventin:

"Windows Servicing identified that package KB961260(Security Update) is not applicable for this system"

(Oheinen tapahtuma on sinänsä mielenkiintoinen, että päivitys on kuitenkin tullut Windows Update:n kautta...)

Server Manager

Päivityksen asennuksen epäonnistuminen laittoi tietysti mietteliääksi, koska edelliset ongelmat päivitysten kanssa olivat olleet...hmm, enpä edes heti muista koska, joka tapauksessa ennen Windows Server 2008:a. Hetkeä myöhemmin kävi ilmi, että epäonnistunut asennus ei ollut ainut ongelma, sillä myös Server Manager:iin oli ilmestynyt mystinen "Refresh Error" ilmoitus "Roles" näkymään ja kuten ehkä arvata saattaa, tämä oli tilanne myös "Features" kohdassa. (Luonnollisestikaan rooleja tahi ominaisuuksia ei voinut lisätä / poistaa.)

Edellisen jälkeen en juurikaan jaksanut uskoa  "ServerManagerCmd.exe" komennon auttavan ja -q parametri palautti virheilmoituksen "Failed to initialize".

Tarkasteltaessa " Microsoft-Windows-ServerManager-Operational" logia, löytyi seuraava tapahtuma:

"Could not discover the state of the system. An unexpected exception was found:
System.Runtime.InteropServices.COMException (0x800B0100): No signature was present in the subject. (Exception from HRESULT: 0x800B0100)
   at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
   at Microsoft.Windows.ServerManager.ComponentInstaller.CreateSessionAndPackage(IntPtr& session, IntPtr& package)
   at Microsoft.Windows.ServerManager.ComponentInstaller.InitializeUpdateInfo()
   at Microsoft.Windows.ServerManager.ComponentInstaller.Initialize()
   at Microsoft.Windows.ServerManager.Common.Provider.Initialize(DocumentCollection documents)
   at Microsoft.Windows.ServerManager.ServerManagerModel.InternalRefreshModelResult(Object state)"

System Update Readiness Tool

Edelliset logimerkinnät eivät juurikaan herättäneet ajatuksia, joten jatkoin tutkimista ja suurehkoa "ServerManager.log":a selaillessa palautui mieleen " System Update Readiness Tool", joka ehkäkenties saattaisi auttaa päivitysten asentamista koskevissa ongelmatilanteissa. (Työkalusta saa lisätietoa täältä: http://support.microsoft.com/kb/947821.)

Palvelimella ei ollut entuudestaan " System Update Readiness Tool" asennettuna, joten asensin työkalun ja tämän jälkeen sitten tutkimaan "CheckSUR.log" logia, joka johdattikin jo lähemmäksi tulevaa korjausta.

Seuraavat rivit ovat osa "%windir%\Logs\CBS\CheckSUR.log" logia:

Checking packages.

(f)         CBS MUM Missing          0x00000002 servicing\packages\Package_for_KB961260_server_0~31bf3856ad364e35~amd64~~6.0.1.3.mum              

(f)         CBS MUM Missing          0x00000002 servicing\packages\Package_for_KB961260_server~31bf3856ad364e35~amd64~~6.0.1.3.mum                

(f)         CBS MUM Missing          0x00000002 servicing\packages\Package_for_KB961260~31bf3856ad364e35~amd64~~6.0.1.3.mum

Korjaus

Kun todennäköinen ongelman aiheuttaja oli paikannettu, niin seuraavaksi sitten kokeilemaan korjausta.

Ensimmäisenä latasin "Windows6.0-KB961260-x64.msu" päivityksen Microsoft:n sivuilta (päivitykset eri Windows versioille löytyvät täältä: http://www.microsoft.com/technet/security/bulletin/ms09-002.mspx).

Tämän jälkeen nimesin "Windows6.0-KB961260-x64.msu":n uudelleen "Windows6.0-KB961260-x64.cab":ksi, mikä mahdollisti paketin sisällön lähemmän tarkastelun (ks.kuva alla).

Uudelleennimetty tiedosto pitää sisällään toisen samannimisen tiedoston, joka on tässä kohtaa se kiinnostava. Eli seuraavaksi purin "Windows6.0-KB961260-x64.cab":n alta löytyvän "Windows6.0-KB961260-x64.cab":n omaan kansioonsa (esim. C:\temp\kb961260).

Purettu .cab tiedosto pitää sisällään kuusi (6) meitä kiinnostavaa tiedostoa, joista kaksi ensimmäistä (.cat ja .mum tiedostot) ovat saman nimisiä kuin "CheckSUR.log":n ensimmäisen puuttuvan tiedoston nimi ilman tiedostotunnistetta.

Vastaavasti kaksi seuraavaa (.cat ja .mum tiedostoa) ovat samannimisiä kuin on "CheckSUR.log":n toisen puuttuvan tiedoston nimi.

Edellisten (neljän) lisäksi löytyy vielä kaksi tässä kohtaa tarpeellista tiedostoa. Ne ovat "update.cat" ja "update.mum".

Kun kaikki kuusi tiedostoa oli paikannettu, kopioin ne  C:\temp\siirto hakemistoon. Täällä nimesin vielä "update.cat" ja "update.mum" tiedostot "CheckSUR.log":n kolmannen puuttuvan tiedoston nimen mukaisiksi (toinen siis .cat ja toinen .mum).

Tässä vaiheessa oli siis kuusi tiedostoa, joista aina kaksi vastasi nimeltään yhtä "CheckSUR.log":n puuttuvan tiedoston nimeä (yksi .cat ja yksi .mum).

"Package_for_KB961260_server_0~31bf3856ad364e35~amd64~~6.0.1.3.cat"
"Package_for_KB961260_server_0~31bf3856ad364e35~amd64~~6.0.1.3.mum"
"Package_for_KB961260_server~31bf3856ad364e35~amd64~~6.0.1.3.cat"
"Package_for_KB961260_server~31bf3856ad364e35~amd64~~6.0.1.3.mum"
"Package_for_KB961260~31bf3856ad364e35~amd64~~6.0.1.3.cat"
"Package_for_KB961260~31bf3856ad364e35~amd64~~6.0.1.3.mum"

Seuraavaksi nämä tiedostot tuli kopioida "C:\Windows\servicing\Packages" kansioon. Tämä ei kuitenkaan suoraan onnistunut, sillä edes administratoreilla ei ollut em. kansioon riittäviä oikeuksia. Tarvittavat oikeudet sai annetuksi, kunhan ensin otti itselleen kansion omistajuuden.

Toiminnan varmistaminen

Tiedostojen kopioinnin jälkeen jäljellä oli vielä se jännittävin vaihe, eli toiminnan testaaminen. Käynnistin siis "Windows Update":n ja valitsin "Check for updates". Asennettavaksi löytyi aiemmin epäonnistunut kb961260 ja kyllä, asennus meni ongelmitta läpi!

Ennen palvelimen uudelleen käynnistämistä en malttanut olla kokeilematta "Server Manager":ia ja helpotus oli melkoinen, kun yhteenveto rooleista tuli näkyviin. Ei siis enää "refresh error":ia!



Takaisin Windows Server 2008-sivulle
Etusivu Palvelut Tuotteet Artikkelit Yritys Yhteystiedot
Myynti (02) 631 2600