woensdag 16 mei 2012

Inconsistent WMI Repository

Op een Citrix Server wilde we een aanpassing doorvoeren op RD Session Host, echter kregen we onderstaande foutmelding:
De foutmelding lag aan de WMI repository, welke corrupt was:


Ook het opvragen van de services via Powershell lukte niet:


Services herstarten leverde geen oplossing.
Oplossing:
We hadden geen backup van de repository (locatie %windir%\System32\wbem\repository) die we terug konden zetten, dus onderstaand commando uitgevoerd:
Winmgmt /salvagerepository %windir%\System32\wbem


In de system32\WBEM\ wordt de oude repository dir. Hernoemd en een nieuwe wordt aangemaakt!


Commando WINMGMT


C:\sydi>winmgmt /?
WMI (Windows Management Instrumentation)
Syntaxis:  winmgmt [/backup <bestandsnaam>] [/restore <bestandsnaam> <vlag>]
                   [/resyncperf] [/standalonehost [<niveau>]] [/sharedhost]
                   [/verifyrepository [<pad>]] [/salvagerepository]
                   [/resetrepository]
/backup    <bestandsnaam>
           Hiermee wordt een back-up van de opslag met de opgegeven bestands-
           naam gemaakt. De optie 'bestandsnaam' moet het volledige pad naar
           de bestandslocatie bevatten. Dit proces vereist een schrijf-
           vergrendeling op de opslag, zodat de schrijfbewerkingen naar de
           opslag worden onderbroken totdat het back-upproces is voltooid.
/restore   <bestandsnaam> <vlag>
           De WMI-opslag handmatig uit het opgegeven back-upbestand
           terugzetten. De optie 'bestandsnaam' moet het volledige
           pad naar de locatie met het back-upbestand bevatten. Om het
           terugzetten te kunnen uitvoeren, wordt de bestaande opslag
           opgeslagen, zodat deze kan worden hersteld als de bewerking
           mislukt. Vervolgens wordt de opslag uit het back-upbestand uit de
           optie 'bestandsnaam' teruggezet. Als er geen exclusieve toegang
           tot de opslag is, wordt de verbinding tussen bestaande clients
           en WMI verbroken. De optie 'vlag' moet 1 (verbinding met
           gebruikers - geforceerd verbreken en vervolgens terugzetten) of
           0 (standaard - terugzetten als geen gebruikers zijn verbonden)
           zijn, en dit bepaalt de modus voor terugzetten.
/resyncperf        De prestatie-DLL-bestanden van het systeem bij WMI
                   registreren.
/standalonehost    [<niveau>]
           De Winmgmt-service naar een alleenstaand Svchost-proces verplaatsen
           dat een vast DCOM-eindpunt heeft. Het standaardeindpunt is
           'ncacn_ip_tcp.0.24158'. Maar het eindpunt kan worden gewijzigd
           door Dcomcnfg.exe uit te voeren. De optie 'niveau' is het
           verificatieniveau voor het Svchost-proces. Als niveau niet wordt
           opgegeven, is de standaardwaarde 4 (RPC_C_AUTHN_LEVEL_PKT).
/sharedhost        De Winmgmt-service naar het gedeelde Scvhost-proces
                   verplaatsen.
/verifyrepository  [<pad>]
           Een consistentiecontrole op de WMI-opslag uitvoeren. Als u de
           schakeloptie /verifyrepository zonder optie <pad> opgeeft, wordt
           de actieve opslag die momenteel door WMI wordt gebruikt,
           gecontroleerd. Als u <pad> opgeeft, kunt u elke opgeslagen kopie
           van de opslag controleren. In dat geval dient <pad> het volledige
           pad naar de opgeslagen kopie van de opslag bevatten. De opgeslagen
           opslag dient een kopie van de volledige opslagmap te zijn.
/salvagerepository
           Een consistentiecontrole op de WMI-opslag uitvoeren en de opslag
           opnieuw samenstellen als een inconsistentie wordt gevonden. De
           inhoud van de inconsistente opslag wordt samengevoegd met de
           opnieuw samengestelde opslag, als deze kan worden gelezen. De
           herstelbewerking wordt altijd uitgevoerd op de opslag die momenteel
           door de WMI-service wordt gebruikt. MOF-bestanden die de instructie
           #pragma autorecover preprocessor bevatten worden naar de opslag
           teruggezet.
/resetrepository
           De opslag wordt teruggezet naar de toestand van net nadat het
           besturingssysteem werd geïnstalleerd. MOF-bestanden die de
           instructie #pragma autorecover preprocessor bevatten worden
           naar de opslag teruggezet.