Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment faire pour restaurer les fichiers de cache de Windows Installer manquants et résoudre les problèmes qui se produisent au cours d'une mise à jour de SQL Server

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 969052
Symptômes
Le processus qui est décrit dans cet article fournit des secours d'urgence uniquement et pas un correctif permanent. Les clients qui utilisent ce processus en cas d'urgence doivent valider leur Cache de programme d'installation de Windows en utilisant lePackage Windows Installer de vérificateur de Cache, comme indiqué dans l'article 2667628.

Lorsque vous essayez d'installer un service pack de Microsoft SQL Server ou d'une mise à jour cumulative, vous pouvez rencontrer des messages d'erreur suivants et thesemay indiquent des problèmes de Cache de Windows Installer. Le Cache du programme d'installation Windows, situé dans le dossierc:\windows\installer , stocke important pour les applications, les fichiers installés à l'aide de la technologie Windows Installer et ne doivent pas être supprimés. Si le cache du programme d'installation a été compromis, vous pouvez pas immédiatement voir problèmes jusqu'à ce que vous effectuez une action telle que de désinstaller, de réparer ou de mise à jour de SQL Server.

Lorsque vous installez SQL Server, Windows Installer stocke les fichiers critiques dans le Cache du programme d'installation de Windows (valeur par défaut est C:\Windows\Installer). Ces fichiers sont requis pour la désinstallation et la mise à jour des applications. Impossible de copier les fichiers manquants entre les ordinateurs, car ils sont uniques.

Microsoft recommande que pour les installations de SQL Server vous utilisez d'abord le processus de réparation qui est décrite dans les articles suivants pour vérifier votre installation :

Vous devez exécuter la réparation à partir du média d'installation d'origine, à l'aide de la ligne de commande suivante :

Setup.exe /ACTION = réparation /INDICATEPROGRESS = TRUE

Réparer les fonctionnalités et les composants partagés communs de tout d'abord et répétez la commande pour réparer les instances installées. Pendant le processus de réparation, la boîte de dialogue disparaît. Tant que la fenêtre de progression ne s'affiche pas une erreur, le processus de réparation est cours comme prévu.

Remarque Messages d'erreur suivants peuvent être trouvés en tant que messages texte dans le journal des événements ou dans les journaux d'installation qui sont trouvent dans un des dossiers suivants, et ils indiquent que vous devez réparer votre instance affecté à continuer :
  • Pour SQL Server 2008 et SQL Server 2008 R2 :
    Le programme d'amorçage de C:\Program Files\Microsoft SQL Server\100\Setup
  • Pour SQL Server 2012 :
    Le programme d'amorçage de C:\Program Files\Microsoft SQL Server\110\Setup
Pour SQL 2005 (toutes les branches)
Version du produitMessage d'erreur lorsque le Package Installer (MSI) est manquantMessage d'erreur lorsque le Package de Cache de programme d'installation (MSP) est manquant
SQL Server 2005
1636 Impossible d'installer le fichier MSI Windows Installer
1636 Impossible d'installer le fichier Windows Installer MSP
Remarque : Vous devez examiner les fichiers journaux d'installation pour déterminer si tous les fichiers cache sont manquants. Pour plus d'informations sur la procédure pour ce faire, consultez la section « Résolution ».

Pour SQL Server 2008 SP1
Version du produitMessage d'erreur lorsque le Package Installer (MSI) est manquantMessage d'erreur lorsque le Package de Cache de programme d'installation (MSP) est manquant
SQL Server 2008 SP1Aucun message d'erreur
TITRE : Échec le programme d'installation de SQL Server.
------------------------------
Le programme d'installation de SQL Server a rencontré l'erreur suivante : Impossible d'ouvrir le fichier de correctif. Le fichier est : c:\WINNT\Installer\1cf506f.msp. Code d'erreur 0x84B20001.
------------------------------
Pour SQL Server 2008 SP3 build uniquement (les branches de CU/GDR ne sont pas applicables)
Version du produitMessage d'erreur lorsque le Package Installer (MSI) est manquantMessage d'erreur lorsque le Package de Cache de programme d'installation (MSP) est manquant
Le Service Pack 3 de SQL Server 2008
Le fichier MSI mis en cache « C:\Windows\Installer\2775c8.msi » est manquant. Son fichier d'origine est « sql_engine_core_inst.msi » et il a été installé pour le produit « 'Microsoft SQL Server 2008 de base de données Services moteur de »<network path="">', version « 10.3.5500.0 », langue « ENU ».</network>
Le fichier de correctif mis en cache « C:\Windows\Installer\19b19196.msp » est manquant. Le fichier d'origine pour ce fichier de mise en cache est « sql_engine_core_inst.msp », qui peut être installé à partir de la version de « Service Pack 3 de SQL Server 2008 (KB2546951) (64 bits), » 10.3.5500.0
Remarque Lorsque vous effectuez une mise à niveau, le message d'erreur suivant s'affiche :
Erreur de SQL Server

Pour SQL Server 2008 R2 SP1 uniquement (les branches de CU/GDR ne sont pas applicables)
Version du produitMessage d'erreur lorsque le Package Installer (MSI) est manquantMessage d'erreur lorsque le Package de Cache de programme d'installation (MSP) est manquant
SQL Server 2008 R2 SP1
TITRE : Échec le programme d'installation de SQL Server.
------------------------------
Le programme d'installation de SQL Server a rencontré l'erreur suivante : C:\Windows\Installer\932b909.msi.
------------------------------
Le fichier de correctif mis en cache « C:\Windows\Installer\105441.msp » est manquant. Le fichier d'origine pour ce fichier de mise en cache est « sql_engine_core_inst_loc.msp », qui peut être installé à partir de « Service Pack 1 pour SQL Server 2008 R2 (KB2528583) (64 bits) », version 10.51.2500.0.
Remarque Lorsque vous effectuez une mise à niveau, le message d'erreur suivant s'affiche :
Erreur de SQL Server

Pour le Service Pack 2 de SQL Server 2008 R2
Version du produitMessage d'erreur lorsque le Package Installer (MSI) est manquantMessage d'erreur lorsque le Package de Cache de programme d'installation (MSP) est manquant
SQL Server 2008 R2 SP1
Le fichier MSI mis en cache « C:\Windows\Installer\932b909.msi » est manquant. Son fichier d'origine est « sql_engine_core_inst.msi » et il a été installé pour le produit 'SQL Server 2008 R2 SP1 de base de données Services moteur' de'<network path="">', version « 10.51.2500.0 », langue « ENU ».</network>
Le fichier de correctif mis en cache « C:\Windows\Installer\105441.msp » est manquant. Le fichier d'origine pour ce fichier de mise en cache est « sql_engine_core_inst_loc.msp », qui peut être installé à partir de « Service Pack 1 pour SQL Server 2008 R2 (KB2528583) (64 bits) », version 10.51.2500.0.
Remarque Lorsque vous effectuez une mise à niveau, le message d'erreur suivant s'affiche :
Erreur de SQL Server

Pour 2012 de SQL Server avant de CU2
Il n'y a pas de message pour les fichiers MSP ou MSI manquants. Toutefois, le code d'erreur 1714 est enregistré dans le journal d'installation.

Dans le fichier Summary.txt :
Nom du composant : fichiers de Support d'installation de SQL Server
Code d'erreur de composant : 1714

Dans le fichier Detail.txt :
<Date><Time>SLP : Sco : le fichier « d:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi » n'existe pas
<Date><Time>SLP : Sco : le fichier « d:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi » n'existe pas
<Date><Time>SLP : Point de contrôle : PREINSTALL_SQLSUPPORT_CPU64_ACTION
<Date><Time>SLP : Sco : tentative de création de la clé de Registre de base HKEY_LOCAL_MACHINE, ordinateur<Server name="">
<Date><Time>SLP : Sco : vous essayez d'ouvrir la sous-clé de Registre Software\Microsoft\Windows\CurrentVersion\Installer
<Date><Time>SLP : Sco : tentative d'obtention de la valeur de Registre InstallerLocation
<Date><Time>SLP : Version Windows installer : 5.0.7601.17514
<Date><Time>SLP : Sco : en attente de service « msiserver » accepter la demande d'arrêt.
<Date><Time>SLP : Sco : vous essayez d'ouvrir le gestionnaire SC
<Date><Time>SLP : Sco : vous essayez d'ouvrir le handle du service pour le service msiserver
<Date><Time>SLP : Appel des API Win32 de QueryServiceStatus
<Date><Time>SLP : Sco : tentative de fermeture du handle de service pour le service msiserver
<Date><Time>SLP : Sco : tentative de fermeture de SC Manager
<Date><Time>SLP : Package cible: « d:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\SqlSupport.msi »
<Date><Time>SLP : Erreur MSI : 1714 Impossible de supprimer l'ancienne version du programme d'installation Microsoft SQL Server 2012 (en anglais). Contactez votre support technique.
<Date><Time>SLP : InstallationProgiciel : MsiInstallProduct a renvoyé le code de résultat 1603.
<Date><Time>SLP: À l'aide de code d'erreur MSI pour détecter l'option Réessayer : 1714
<Date><Time>SLP : Aucun MSI réessayer pu ne retourner le code détecté.</Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Server></Time></Date></Time></Date></Time></Date></Time></Date>

Pour SQL Server 2012 CU2 (et tous les CU ou SP)
Version du produitMessage d'erreur lorsque le Package Installer (MSI) est manquantMessage d'erreur lorsque le Package de Cache de programme d'installation (MSP) est manquant
SQL Server 2008 R2 SP1
Le fichier MSI mis en cache ' C:\Windows\Installer\<file_encoded_name>.msi' est manquant. Son fichier d'origine est '' C:\Windows\Installer\sql_<featurename>.msi'}' et il a été installé pour le produit « Microsoft SQL Server <version>' à partir de 'C:\originalfolder', version '<versionnumber>', langue '<language>'.</language> </versionnumber> </version> </featurename> </file_encoded_name>
Le fichier de correctif mis en cache « c:\Windows\Installer\1fdb1aec.msp » est manquant. Son fichier d'origine est « sql_engine_core_inst.msp », qui peut être installé à partir du fichier de correctif mis en cache de 11.00.2100.60.The de version « Correctif 2316 pour SQL Server 2012 (KB2679368) (64 bits) », « C:\Windows\Installer\<file_encoded_name>.msp » est manquant. Son fichier d'origine est '' C:\Windows\Installer\sql_<featurename>.msp'}', qui peuvent être installés à partir de « correctif <number>pour SQL Server 2012 <KB number="">', version '<versionnumber>'.</versionnumber> </KB> </number> </featurename> </file_encoded_name>
Remarque Dans certaines circonstances dans SQL Server 2012, RTM media ne peut-être pas correctement enregistrés. Lorsque vous désinstallez une mise à jour cumulative ou un service pack dans ces circonstances, le programme d'installation peut vous demander de media de la RTM. Pour contourner ce problème, fournir le chemin d'accès de média RTM pendant le processus de suppression du correctif.
Cause
Ces problèmes peuvent se produire lorsque le fichier de base de données Windows Installer (.msi) ou le fichier de correctif Windows Installer (.msp) est manquant dans le cache de Windows Installer. Le cache de Windows Installer se trouve dans le dossier suivant :
%windir%\Installer
Lorsqu'un produit est installé à l'aide de Windows Installer, une version simplifiée du fichier .msi d'origine est stockée dans le cache de Windows Installer. Chaque mise à jour pour le produit comme une installation du service pack, un correctif ou une mise à jour cumulative stocke également la .msp pertinentes ou fichier .msi dans le cache de Windows Installer.

Toute future mise à jour pour le produit comme une installation du service pack, un correctif ou une mise à jour cumulative s'appuie sur les informations contenues dans les fichiers qui sont stockés dans le cache de Windows Installer. Sans ces informations, la nouvelle mise à jour ne peut pas effectuer les transformations requises.
Résolution
Pour résoudre ces problèmes, appliquez l'une des procédures suivantes.

Procédure 1: Utilisation d'un script

Pour terminer les étapes de cette procédure, vous devez copier le Script de FindSQLInstalls.vbs à partir de la section « Informations complémentaires » dans un dossier local sur l'ordinateur où vous essayez de mettre à jour votre installation de SQL Server.

Remarque Le script FindSQLInstalls.vbs recueille les informations pour résoudre les chemins d'accès de package non valide. Et bien, ce script est utilisé par rapport à l'emplacement source pour vous assurer que tous les packages MSP se trouvent dans le répertoire de cache de Windows Installer. Les modules manquants seront ajoutés de nouveau si le média source d'origine est disponible.

Pour résoudre ces problèmes à l'aide d'un script, procédez comme suit :
  1. Recherchez le répertoire dans lequel vous avez enregistré le contenu du script.
  2. Ouvrez une invite de commandes avec élévation de privilèges dans le répertoire dans lequel vous avez enregistré le script et exécutez la commande suivante :
    Cscript FindSQLInstalls.vbs %computername%_sql_install_details.txt
  3. Ouvrez le fichier à partir de l'étape 2, dans un éditeur de texte tel que le bloc-notes et identifier les problèmes qui sont à l'origine de la défaillance. Pour ce faire, recherchez le fichier texte pour les modèles de chaîne telles que les suivantes :
    • ne le faites pas
    • !!!
  4. Basé sur les résultats à l'étape 3, prendre les étapes qui sont requises.

    Remarque Recherchez plus d'informations sur ces étapes dans la section « Exemples ».

  5. Répétez les étapes 2 à 4 jusqu'à ce que le fichier texte créé à l'étape 2 ne contient plus le texte qui fait référence à des chemins d'accès non valides ou des fichiers manquants pour le composant qui est mis à jour.

Exemples

Les exemples suivants sont des entrées et des explications des actions qui sont décrites dans le fichier de sortie qui est généré lorsque vous exécutez le script FindSQLInstalls.vbs.

Exemple 1: Pas de fichiers d'installation
Voici un exemple de la sortie qui est généré lorsque vous ne disposez pas d'un package .msi dans le dossier cache de Windows Installer.
================================================================================PRODUCT NAME   : Microsoft SQL Server 2008 Database Engine Services================================================================================  Product Code: {9FFAE13C-6160-4DD0-A67A-DAC5994F81BD}  Version     : 10.2.4000.0  Most Current Install Date: 20110211  Target Install Location:   Registry Path:    HKEY_CLASSES_ROOT\Installer\Products\C31EAFF906160DD46AA7AD5C99F418DB\SourceList     Package    : sql_engine_core_inst.msi  Install Source: \x64\setup\sql_engine_core_inst_msi\  LastUsedSource: m;1;G:\x64\setup\sql_engine_core_inst_msi\

La ligne « LastUsedSource » pointe vers l'emplacement qui a été utilisé pour exécuter le programme d'installation.

Dans la ligne « LastUsedSource », l'entrée m; signifie media et indique que la source d'origine est un support CD/DVD.

Dans l'exemple suivant, la source est un CD ou un DVD dans le lecteur G. Si l'installation s'est produite à partir d'un dossier ou d'un partage réseau, la ligne commence par une entrée n; « LastUsedSource » suivi d'une entrée Numeric_Data_Name ; puis le chemin d'accès réel :
!!!! sql_engine_core_inst.msi DOES NOT exist on the path in the path G:\x64\setup\sql_engine_core_inst_msi\ !!!! Action needed, re-establish the path to G:\x64\setup\sql_engine_core_inst_msi\ 

« Action requise » pour ligne vous indique le chemin d'accès complet qui doit exister pour mettre à jour des fichiers manquants pour le support d'installation d'origine :
Installer Cache File: C:\WINDOWS\Installer\19b4d2.msi 

La ligne « Installer le fichier de Cache » confirme le nom du fichier d'installation du cache :
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! C:\WINDOWS\Installer\19b4d2.msi DOES NOT exist in the Installer cache. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

La section suivante de la sortie vous conseille des actions qui sont requises pour résoudre les fichiers manquants :
 Action needed, recreate or re-establish path to the directory:     G:\x64\setup\sql_engine_core_inst_msi\then rerun this script to update installer cache and results     The path on the line above must exist at the root location to resolve     this problem with your msi/msp file not being found or corrupted,     In some cases you may need to manually copy the missing file or manually     replace the problem file overwriting it is exist:       Copy "G:\x64\setup\sql_engine_core_inst_msi\sql_engine_core_inst.msi" C:\WINDOWS\Installer\19b4d2.msi      Replace the existing file if prompted to do so.
Exemple 2: Les correctifs manquants
Les entrées qui ressemblent à celles de l'exemple 1 peuvent entraîner les correctifs manquants. La plupart du temps, vous remarquez que les entrées dans la ligne « Correctif LastUsedSource » qui font référence à un correctif, et cette ligne semblable à la suivante :
Patch LastUsedSource:   n;1;c:\0ca91e857a4f12dd390f0821a3\HotFixSQL\Files\

Cette sortie indique les points suivants concernant l'installation du correctif :
  • Le correctif d'origine a été installé en double-cliquant sur le fichier exécutable du correctif.
  • Le programme d'installation du correctif a utilisé un dossier temporaire, c:\0ca91e857a4f12dd390f0821a3, lors de l'installation du correctif.
  • Pour recréer le chemin d'accès, vous devez exécuter le fichier exécutable même et ajoutez le paramètre suivant :
    /x:c:\0ca91e857a4f12dd390f0821a3
    Remarque Cette commande force le fichier exécutable pour extraire les fichiers vers l'emplacement précédent de manquant, et Ceci recrée la structure nécessaire pour mettre à jour le cache de Windows installer avec les fichiers manquants. L'emplacement réel peut varier, et un seul correctif telles qu'un service pack peut avoir à extraire à plusieurs emplacements. Chacun de ces produits comprend une section qui contient les informations suivantes pour « Correctifs installés » :
    Display name:KB Article URL:  http://support.microsoft.com/?kbid=<value>Patch LastUsedSource: 

    La ligne « URL de l'Article Ko » peut vous aider à télécharger n'importe quel support de correctif, si cela est nécessaire.

Procédure 2: Restaurer manuellement les fichiers

Pour restaurer manuellement les fichiers qui ne figurent pas dans le cache de Windows Installer, procédez comme suit :
  1. Collecter les informations complètes sur le fichier manquant dans le message d'erreur, dans le fichier journal d'installation ou à partir des entrées du Registre qui sont gérées par le programme d'installation de Windows. Par exemple, dans le Message d'erreur 1 dans la section « Symptômes », toutes les informations nécessaires pour résoudre le problème sont présentes dans le message d'erreur :
    • Nom_correctif: « 1702 de correctif pour SQL Server 2008 R2 (KB981355) (64 bits) "
    • Fichier MSP d'origine qui est utilisé par le correctif : sql_engine_core_inst.msp
    • Les fichiers MSP mis en cache : c:\Windows\Installer\1fdb1aec.msp
  2. Si vous n'avez pas tous les détails, consultez le « plus d'informations de la section 2" procédure pour savoir comment collecter ces informations.
  3. Visitez le site http://support.Microsoft.com, puis recherchez l'article qui est associé à ce correctif. Dans cet exemple, vous devez rechercher KB981355.
  4. Télécharger ce package correctif sur votre ordinateur. Assurez-vous que vous téléchargez le package de correctif qui correspond à la plateforme requise. Dans cet exemple, le package est SQLServer2008R2-KB981355-x64.exe.
  5. Extrayez le contenu du package de correctifs à l'aide de la syntaxe suivante :
    C:\Temp>SQLServer2008R2-KB981355-x64.exe/x C:\Temp\SQLServer2008R2-KB981355-x64\
  6. Recherchez le fichier sql_engine_core_inst.msp de fichier msp d'origine. Le fichier doit être dans le dossier suivant :
    C:\Temp\SQLServer2008R2-KB981355-x64\x64\setup\sql_engine_core_inst_msi\
  7. Copiez ce fichier msp d'origine dans le cache de Windows Installer suivant :
    %windir%\installer\
  8. Renommez le fichier msp d'origine, sql_engine_core_inst.msp, le nom suivant :
    1fdb1aec.msp de fichier msp mis en cache

Vous pouvez démarrer le programme d'installation de la mise à jour qui a provoqué l'erreur et reprendre le processus de mise à jour. Vous pouvez rencontrer ce message pour un fichier cache de Windows Installer manquant pour un autre composant ou pour mettre à jour un autre du même produit.

Pour obtenir une liste des tous les Windows Installer cache fichiers manquants associés aux composants du produit de SQL Server, vous pouvez télécharger l'outil BPA de SQL Server 2008 R2 qui est mentionné dans la section « Informations complémentaires ».

Si le message d'erreur fait référence à un fichier de base de données de Windows Installer (.msi) manquant, vous n'avez pas à effectuer les étapes 2 à 4. Au lieu de cela, vous pouvez accéder directement à l'étape 5. Vous devez rechercher le fichier .msi à partir du média d'origine que vous avez utilisé pour installer le produit. Si ce message d'erreur a été généré pour les sql_engine_core_inst.msi, vous devez localiser ce fichier à partir du support d'installation sous la structure de dossiers suivante :
\x64\setup\sql_engine_core_inst_msi\
Les autres étapes sont les mêmes.

Plus d'informations pour la procédure 2

Comment trouver le correctif et les détails du produit pour un fichier .msp manquant
Différentes versions du produit génèrent différents messages d'erreur pour résoudre ce problème. Les messages d'erreur mentionnés dans la section "Symptômes" s'affichent pour les programmes d'installation de mises à jour à partir de Microsoft SQL Server 2008 SP1. Pour d'autres mises à jour, vous recevez des messages d'erreur qui ne peuvent pas clairement spécifier quel correctif est manquant dans le cache de Windows Installer et les détails de la mise à jour spécifique. Ces messages d'erreur, les fichiers journaux d'installation contient des informations sur le fichier cache de Windows Installer manquant. Exemple de journal d'installation semblable au suivant :
MSI (s) (FC:F8) [13:48:58:649]: Opening existing patch 'C:\WINDOWS\Installer\145258.msp'.MSI (s) (FC:F8) [13:48:58:649]: Couldn't find local patch 'C:\WINDOWS\Installer\145258.msp'. Looking for it at its source.MSI (s) (FC:F8) [13:48:58:649]: Resolving Patch source.MSI (s) (FC:F8) [13:48:58:649]: Note: 1: 2203 2: D:\cda162709d239766830bae5ce12b\HotFixSQL\Files\sqlrun_sql.msp 3: -2147287037 MSI (s) (FC:F8) [13:48:58:649]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.MSI (s) (FC:F8) [13:49:29:961]: Product: Microsoft SQL Server 2005 -- Installation failed.MSI (s) (FC:F8) [13:49:29:992]: MainEngineThread is returning 1635This patch package could not be opened.  Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package.D:\SQL2K5\Servers\Setup\SqlRun_SQL.msi

Si vous examinez ce journal d'installation avec soin, elle vous procure déjà les informations sur le fichier MSP d'origine qui a été utilisé par le correctif suivant :
sqlrun_sql.msp


Pour en savoir plus sur le fichier .msp manquant dans le cache de Windows Installer, procédez comme suit :
  1. Recherchez le fichier .msp manquant dans la sous-clé de Registre Windows Installer correctifs suivant :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\
  2. Rechercher le GUID du correctif.
  3. Rechercher le GUID du correctif dans la sous-clé de Registre suivante des produits Windows Installer :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
Pour l'exemple de journal d'installation, les informations sur le fichier .msp manquant et ses détails de correctifs correspondants sont présents dans les entrées de Registre suivantes :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\A3B085EA74A9A7640A496636F7EF9A44

Valeur: 0
Nom : LocalPackage
Données : C:\WINDOWS\Installer\145258.msp

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\1EB3A031CC585314E87AA527E46EECC2\Patches\A3B085EA74A9A7640A496636F7EF9A44
Valeur: 6
Nom : DisplayName
Données : GDR 2050 pour SQL Server de base de données Services 2005 ENU (KB932555)

Vous avez maintenant tous les points d'informations pour démarrer la procédure pour résoudre les fichiers manquants dans le cache de Windows Installer.

Remarque Si vous utilisez Microsoft SQL Server 2008 Service Pack 3 (SP3) ou une version ultérieure, vous pouvez également recevoir un message d'erreur similaire pour les fichiers .msi manquant. À l'aide de ce message d'erreur, vous pouvez déterminer rapidement quel fichier manque, quel service pack à télécharger, et où vous pouvez trouver le téléchargement.

Pour plus d'informations sur la façon d'obtenir le service pack, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2546951 Liste des bogues corrigés dans le Service Pack 3 de SQL Server 2008

Plus d'informations
Pour plus d'informations sur les fichiers Windows Installer (.msi) de la base de données, visitez le site Web Microsoft Developer Network (MSDN) suivant :Pour plus d'informations sur les fichiers Windows Installer correctif (fichier .msp), reportez-vous au site Web MSDN suivant :Pour plus d'informations sur les détails internes du cache de Windows Installer, consultez le blog MSDN suivant :Pour plus d'informations sur le processus de gestion des correctifs, consultez le blog MSDN suivant :Pour plus d'informations sur la façon de s'assurer que vous mettez en cache le fichier du correctif pour la plate-forme correcte, consultez le blog MSDN suivant :Pour plus d'informations sur pourquoi tout produit qui utilise le programme d'installation de Windows peut rencontrer ce problème, consultez le blog MSDN suivant :Pour plus d'informations sur les détails concernant les différents ensembles de messages d'erreur qui s'affichent dans les fichiers journaux d'installation, consultez le blog MSDN suivant :

Pour plus d'informations sur les produits ou les outils de vérification automatique pour cette condition sur votre instance de SQL Server et sur les versions du produit SQL Server, consultez le tableau suivant :
Logiciel de règlesTitre de la règleDescription de la règleVersions du produit par rapport à laquelle la règle est évaluée.
Analyseur des meilleures pratiques SQL Server 2008 R2 (SQL Server 2008 R2 BPA)Le programme d'installation - cache du programme d'installation est manquante pour l'Installation de SQLSQL Server 2008 R2 Best Practice Analyzer (BPA SQL Server 2008 R2) fournit une règle pour détecter le fichier de cache manquant de programme d'installation pour les composants de SQL Server. Le BPA de SQL Server 2008 R2 prend en charge à la fois SQL Server 2008 et SQL Server 2008 R2. Si vous exécutez l'outil BPA et rencontrez une erreur avec le titre du programme d'installation - cache du programme d'installation est manquante pour l'Installation de SQL, et ensuite les fichiers cache sont manquants dans le dossier cache.SQL Server 2008
SQL Server 2008 R2
SQL Server 2012 Best Practice Analyzer (BPA de SQL Server 2012)Le programme d'installation - cache du programme d'installation est manquante pour l'Installation de SQLSQL Server 2012 Best Practice Analyzer (BPA de SQL Server 2012) fournit une règle pour détecter le fichier de cache manquant de programme d'installation pour les composants de SQL Server. Si vous exécutez l'outil BPA et rencontrez une erreur avec le titre du programme d'installation - cache du programme d'installation est manquante pour l'Installation de SQL, et ensuite les fichiers cache sont manquants dans le dossier cache.SQL Server 2012



Script de FindSQLInstalls.vbs

' Copyright © Microsoft Corporation.  All Rights Reserved.' This code released under the terms of the ' Microsoft Public License (MS-PL, http://opensource.org/licenses/ms-pl.html.)  On Error Resume Next Dim arrSubKeys, arrSubKeys2Dim objFSO, objShell, objFile, objReg, objConn, objExecDim strComputer, strKeyPath, strNewSourceDim strWorkstationName, strDBPath, strSubKey, strSubKey2(), strKeyPath02,  strRetValue00Dim strRetValue01, strRetValue02, strRetValNew02, strRetValNew03, strRetValNew04, strRetValNew05, strRetValNew06, strRetValNew07, strRetValNew08, strRetValNew09, strRetValue10, strRetValNew10, strRetValNew11, strRetValNew12, strRetValNew13, strRetValNew14, strRetValNew14a, strRetValNew14b, strRetValNew15, strRetValNew15a, strRetValNew15b, strRetValNew16, strRetValNew17, strRetValNew18 Const HKCR = &H80000000 'HKEY_CLASSES_ROOTConst HKLM = &H80000002 'HKEY_LOCAL_MACHINEConst ForReading = 1, ForWriting = 2, ForAppEnding = 8 ' Checking for Elevated permissionsDim oShell, oExecszStdOutszStdOut = ""Set oShell = CreateObject("WScript.Shell")Set oExec = oShell.Exec("whoami /groups") Do While (oExec.Status = cnWshRunning)    WScript.Sleep 100       if not oExec.StdOut.AtEndOfStream Then                szStdOut = szStdOut & oExec.StdOut.ReadAll       end IfLoop select case oExec.ExitCode   case 0       if not oExec.StdOut.AtEndOfStream Then           szStdOut = szStdOut & oExec.StdOut.ReadAll       End If       If instr(szStdOut,"Mandatory Label\High Mandatory Level") Then                wscript.echo "Elevated, executing script and gathering requested data"       Else           if instr(szStdOut,"Mandatory Label\Medium Mandatory Level")  Then          Wscript.echo "Not Elevated must run from Administrative commmand line."       Else          Wscript.echo "Gathering requested data..."           end If      End If   case Else       if not oExec.StdErr.AtEndOfStream Then          wscript.echo oExec.StdErr.ReadAll       end If       end select '' Leaving strNewSource will result in no search path updating.' Currently DO NOT EDIT these.strNewSource = ""strNewRTMSource = "" ' Define string valuesstrComputer = "."strSQLName = "SQL"strDotNetName = ".NET"strVStudioName = "Visual Studio"strXML = "XML"strOWC = "Microsoft Office 2003 Web Components"strKeyPath = "Installer\Products"strKeyPath2 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products"strNValue00 = "ProductName"strNValue01 = "PackageName"strNValue02 = "LastUsedSource"strNValue03 = "InstallSource"strNValue04 = "LocalPackage"strNValue05 = "DisplayVersion"strNValue06 = "InstallDate"strNValue07 = "UninstallString"strNValue08 = "PackageCode"strNValue09 = "MediaPackage"strNValue10 = "InstallSource"strNValue11 = "AllPatches"strNValue12 = "NoRepair"strNValue13 = "MoreInfoURL"strNValue14 = "PackageName"strNValue15 = "LastUsedSource"strNValue16 = "Uninstallable"strNValue17 = "DisplayName"strNValue18 = "Installed" If WScript.arguments.count <> 1 Then   WScript.echo "Usage: cscript " & WScript.scriptname & " outputfilename.txt"   WScript.quitEnd If '--Setup the output fileSet fso = CreateObject("Scripting.FileSystemObject")Set txtFile = fso.OpenTextFile(WScript.arguments(0), ForWriting, True)If err.number <> 0 Then    WScript.echo "Error 0x" & myHex(err.number,8) & ": " & err.source & " - " & err.description    WScript.quitEnd If txtFile.writeline "Products installed on the local system"txtFile.writeline " "txtFile.writeline " "  Set objFSO = CreateObject("Scripting.FileSystemObject")Set objShell = WScript.CreateObject("WScript.Shell") '--Set up the registry provider.Set objReg = GetObject("winmgmts:\\" & strComputer & _"\root\default:StdRegProv") Set wiInstaller = CreateObject("WindowsInstaller.Installer") '--Enumerate the "installer\products" key on HKCRobjReg.EnumKey HKCR, strKeyPath, arrSubKeys For Each strSubKey In arrSubKeys ' Define the various registry pathsstrProduct01 = "Installer\Products\" & strSubKeystrKeyPath02 = "Installer\Products\" & strSubKey & "\SourceList"strKeyPath03 = "Installer\Products\" & strSubKey & "\SourceList\Media"strInstallSource = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & strSubKey & "\InstallProperties\"strInstallSource2 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & strSubKey & "\patches\"strInstallSource3 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches"strInstallSource5 = "SOFTWARE\Classes\Installer\Patches\"strInstallSource6 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"strInstallSource7 = "SOFTWARE\Microsoft\Microsoft SQL Server\"strInstallSource8 = "SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\" ' Pull the intial valuesobjReg.GetStringValue HKCR, strProduct01, strNValue00, strRetValue00objReg.GetStringValue HKCR, strKeyPath02, strNValue01, strRetValue01objReg.GetStringValue HKCR, strKeyPath02, strNValue02, strRetValue02strRetValNew02 = Mid(strRetValue02, 5)objReg.GetStringValue HKCR, strKeyPath03, strNValue09, strRetValue09strRetValue10 = strNewRTMSource & strRetValue09objReg.GetStringValue HKLM, strInstallSource, strNValue03, strRetValNew03objReg.GetStringValue HKLM, strInstallSource, strNValue04, strRetValNew04objReg.GetStringValue HKLM, strInstallSource, strNValue05, strRetValNew05objReg.GetStringValue HKLM, strInstallSource, strNValue06, strRetValNew06objReg.GetStringValue HKLM, strInstallSource, strNValue07, strRetValNew07objReg.GetStringValue HKLM, strInstallSource, strNValue10, strRetValNew10objReg.GetStringValue HKLM, strInstallSource, strNValue12, strRetValNew12objReg.GetStringValue HKLM, strInstallSource, strNValue13, strRetValNew13objReg.GetStringValue HKLM, strInstallSource2, strNValue11, strRetValNew11 ' Pull the Product Code from the Uninstall StringstrProdCode = strRetValNew07  ProdCodeLen = Len(strProdCode)  ProdCodeLen = ProdCodeLen - 14strRetValNew08 = Right(strProdCode, ProdCodeLen) ' Pull out path from LastUsedSourcestrGetRealPath = strRetValue02  GetRealPath = Len(strRetValue02)strRealPath = Mid(strRetValue02, 5, GetRealPath) ' Identifie the string in the ProductNameIf instr(1, strRetValue00, strSQLName, 1) Then' Start the log output    txtFile.writeline "================================================================================"    txtFile.writeline "PRODUCT NAME   : " & strRetValue00    txtFile.writeline "================================================================================"    txtFile.writeline "  Product Code: " & strRetValNew08    txtFile.writeline "  Version     : " & strRetValNew05    txtFile.writeline "  Most Current Install Date: " & strRetValNew06    txtFile.writeline "  Target Install Location: "  & strRetValNew13    txtFile.writeline "  Registry Path: "    txtFile.writeline "   HKEY_CLASSES_ROOT\" & strKeyPath02    txtFile.writeline "     Package    : " & strRetValue01    txtFile.writeline "  Install Source: " & strRetValue10    txtFile.writeline "  LastUsedSource: " & strRetValue02'   txtFile.writeline "Does this file on this path exist? " & strRetValNew02 & "\" & strRetValue01    If fso.fileexists(strRetValNew02 & "\" & strRetValue01) Then    txtFile.writeline  " "        txtFile.writeline "    " & strRetValue01 & " exists on the LastUsedSource path, no actions needed."    Else        txtFile.writeline " "        txtFile.writeline " !!!! " & strRetValue01 & " DOES NOT exist on the path in the path " & strRealPath & " !!!!"        txtFile.writeline " "        txtFile.writeline " Action needed, re-establish the path to " & strRealPath' Placeholder for altering the LastUsedSource by adding source location and Forcing search of list'        If strNewSource <> "" Then'        txtFile.writeline "      New Install Source Path Added: " & strNewSource'        wiInstaller.AddSource strRetValNew08, "", strNewSource'        Else'        If strNewRTMSource <> "" Then'        wiInstaller.AddSource strRetValNew08, "", strNewRTMSource'        txtFile.writeline "      Forcing SourceList Resolution For: " & strRetValNew08'        wiInstaller.ForceSourceListResolution strRetValNew08, ""'        End If'        End If    End If        txtFile.writeline " "        txtFile.writeline "Installer Cache File: " & strRetValNew04    If fso.fileexists(strRetValNew04) Then        txtFile.writeline " "        txtFile.writeline "    Package exists in the Installer cache, no actions needed."        txtFile.writeline "    Any missing packages will update automatically if needed assuming that"        txtFile.writeline "    the LastUsedSource exists."        txtFile.writeline " "        txtFile.writeline "    Should you get errors about " & strRetValNew04 & " or " & strRealPath & strRetValue01 & " then you"        txtFile.writeline "    may need to manually copy the file, if file exists replace the problem file, "         txtFile.writeline "    Copy and paste the following command line into an administrative command prompt:"        txtFile.writeline " "        txtFile.writeline "     Copy " & chr(34) & strRealPath  & strRetValue01 & chr(34) & " " &strRetValNew04        txtFile.writeline " "    ElseIf fso.fileexists(strRetValNew02 & "\" & strRetValue01) Then              fso.CopyFile strRetValNew02 & "\" & strRetValue01, strRetValNew04        If fso.fileexists(strRetValNew04) Then          txtFile.writeline " "          txtFile.writeline "     Missing cache file replaced by copying " & strRealPath  & strRetValue01 & " to " & strRetValNew04          txtFile.writeline "     Previously missing package " & strRetValNew04 &  " now exists in the Installer cache."          txtFile.writeline " "        End If    Else        txtFile.writeline " "        txtFile.writeline " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"        txtFile.writeline " !!!! " & strRetValNew04 & " DOES NOT exist in the Installer cache. !!!!"        txtFile.writeline " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"        txtFile.writeline " "        txtFile.writeline "     Action needed, recreate or re-establish path to the directory:"        txtFile.writeline "       " & strRealPath & "then rerun this script to update installer cache and results"        txtFile.writeline "     The path on the line above must exist at the root location to resolve"        txtFile.writeline "     this problem with your msi/msp file not being found or corrupted,"        txtFile.writeline "     In some cases you may need to manually copy the missing file or manually"        txtFile.writeline "     replace the problem file overwriting it is exist: "         txtFile.writeline " "        txtFile.writeline "     Copy " & chr(34) & strRealPath  & strRetValue01 & chr(34) & " " &strRetValNew04        txtFile.writeline " "        txtFile.writeline "     Replace the existing file if prompted to do so."        txtFile.writeline " "    End If    txtFile.writeline " "    txtFile.writeline strRetValue00 & " Patches Installed "    txtFile.writeline "--------------------------------------------------------------------------------"     err.clear    objReg.EnumKey HKLM, strInstallSource2, arrSubKeys2    uUpperBounds = UBound(arrSubKeys2,1)     If err.number = 0  Then        For Each strSubKey2 in arrSubKeys2    '    WScript.echo "value = " & strSubKey2 strKeyPath04 = "Installer\Patches\" & strSubKey2 & "\SourceList"      objReg.GetDWORDValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue16, strRetValue16     objReg.GetStringValue HKCR, strKeyPath04, strNValue15, strRetValue15a     objReg.GetStringValue HKCR, strKeyPath04, strNValue14, strRetValue14a     objReg.GetStringValue HKCR, strKeyPath02, strNValue15, strRetValue15b     objReg.GetStringValue HKCR, strKeyPath02, strNValue14, strRetValue14b     objReg.GetStringValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue17, strRetValue17     objReg.GetStringValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue18, strRetValue18     objReg.GetStringValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue13, strRetValue13a     objReg.GetStringValue HKLM, strInstallSource3 & "\" & strSubKey2 & "\", strNValue04, strRetValue04a ' Pull the URL from the MoreInfoURL StringstrMoreInfoURL = strRetValue13a  MoreInfoURLLen = Len(strMoreInfoURL)strRetValue13b = Right(strMoreInfoURL, 42) ' Pull the URL from the LastUsedPath StringstrLastUsedPath = strRetValue15a  LastUsedPathLen = Len(strLastUsedPath)  'LastUsedPathLen = LastUsedPathLen - 15strRetValue15c = Mid(strLastUsedPath, 5)       txtFile.writeline " Display Name:    " & strRetValue17       txtFile.writeline " KB Article URL:  " & strRetValue13b      txtFile.writeline " Install Date:    " & strRetValue18               txtFile.writeline "   Uninstallable:   " & strRetValue16       txtfile.writeline " Patch Details: "      txtFile.writeline "   HKEY_CLASSES_ROOT\Installer\Patches\" & strSubKey2              txtFile.writeline "   PackageName:   " & strRetValue14a' Determine if someone has modified the Uninstallable state from 0 to 1 allowing possible unexpected uninstalls              txtFile.writeline "    Patch LastUsedSource: " & strRetValue15a               txtFile.writeline "   Installer Cache File Path:     " & strRetValue04a         txtFile.writeline "     Per " & strInstallSource3 & "\" & strSubKey2 & "\" & strNValue04              mspFileName = (strRetValue15c  & strRetValue14a)      If strRetValue14a <> "" Then      If fso.fileexists(strRetValue04a) Then        txtFile.writeline " "        txtFile.writeline "    Package exists in the Installer cache, no actions needed."        txtFile.writeline "    Package will update automatically if needed assuming that"        txtFile.writeline "    the LastUsedSource exists."        txtFile.writeline " "        txtFile.writeline "    Should you get errors about " & strRetValue04a & " or " & strRetValue15c  & strRetValue14a & " then you"        txtFile.writeline "    may need to manually copy missing files, if file exists replace the problem file, "         txtFile.writeline "    Copy and paste the following command line into an administrative command prompt."        txtFile.writeline " "        txtFile.writeline "     Copy " & chr(34) & strRetValue15c  & strRetValue14a & chr(34) & " " & strRetValue04a        txtFile.writeline " "      ElseIf fso.fileexists(mspFileName) Then              fso.CopyFile mspFileName, strRetValue04a          If fso.fileexists(strRetValue04a) Then          txtFile.writeline " "          txtFile.writeline " Missing cache file replaced by copying " & strRetValue15c  & strRetValue14a & " to " & strRetValue04a          txtFile.writeline " Previously missing package " & strRetValNew04 &  " now exists in the Installer cache."          txtFile.writeline " "          End If'        End If      Else        txtFile.writeline " "        txtFile.writeline "!!!! " & strRetValue04a & " package DOES NOT exist in the Installer cache. !!!!"        txtFile.writeline " "        txtFile.writeline "     Action needed, recreate or re-establish path to the directory:"        txtFile.writeline "       " & strRetValue15c & " then rerun this script to update installer cache and results"        txtFile.writeline "     The path on the line above must exist at the root location to resolve"        txtFile.writeline "     this problem with your msi/msp file not being found or corrupted,"        txtFile.writeline "     In some cases you may need to manually copy missing files or manually"        txtFile.writeline "     replace the problem file, "         txtFile.writeline " "        txtFile.writeline "     Copy " & chr(34) & strRetValue15c  & strRetValue14a & chr(34) & " " & strRetValue04a        txtFile.writeline " "        txtFile.writeline "     Replace the existing file if prompted to do so."        txtFile.writeline " "        txtFile.writeline "     Use the following URL to assist with downloading the patch:"        txtFile.writeline "      " & strRetValue13b        txtFile.writeline " "        txtFile.writeline " "      End If       Else        txtFile.writeline " "     End If        next     Else        txtfile.writeline " "        txtfile.Writeline "  No Patches Found"        txtfile.writeline " "    End If     End If  NexttxtFile.CloseSet txtFile = NothingSet fso = Nothing

Avertissement : cet article a été traduit automatiquement

Propriétés

ID d'article : 969052 - Dernière mise à jour : 03/09/2016 07:54:00 - Révision : 19.0

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Enterprise Evaluation, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Standard Edition for Small Business, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Evaluation Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Express Edition with Advanced Services, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web

  • kbtshoot kbexpertiseinter kbprb kbsurveynew kbmt KB969052 KbMtfr
Commentaires
;did=1&t=">")[0].appendChild(m);