Come ripristinare i file di cache di Windows Installer mancanti e risolvere i problemi che si verificano durante un aggiornamento di SQL Server

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 969052
Sintomi
Il processo descritto in questo articolo fornisce solo i soccorsi urgenti e non una correzione permanente. I clienti che utilizzano il processo di emergenza devono convalidare la Cache di Windows Installer utilizzando ilPacchetto di Windows Installer Cache Verifier, come descritto nell'articolo KB 2667628.

Quando si tenta di installare un service pack di Microsoft SQL Server o un aggiornamento cumulativo, che si verifichino i seguenti messaggi di errore e thesemay indicano problemi di Cache di Windows Installer. Windows Installer Cache, che si trova nella cartellac:\Windows\Installer. , archivia importanti file per le applicazioni installate utilizzando la tecnologia Windows Installer e non devono essere eliminati. Se la cache del programma di installazione è stata compromessa, è possibile non immediatamente vedere problemi fino a quando non si esegue un'azione, ad esempio disinstallare, ripristino o aggiornare SQL Server.

Quando si installa SQL Server, Windows Installer memorizza i file critici nella Cache di Windows Installer (impostazione predefinita è c:\Windows\Installer.). Questi file sono necessari per la disinstallazione e aggiornamento delle applicazioni. Impossibile copiare i file mancanti tra computer, in quanto sono univoci.

Microsoft consiglia che per le installazioni di SQL Server utilizzare innanzitutto il processo di ripristino descritto negli articoli riportati di seguito per verificare l'installazione corrente:

È necessario eseguire il ripristino dal supporto di installazione originale, utilizzando la seguente riga di comando:

Setup.exe /azione = riparazione /INDICATEPROGRESS = TRUE

Ripristinare le funzionalità e i componenti condivisi comuni prima e quindi ripetere il comando per ripristinare le istanze installate. Durante il processo di ripristino, scomparirà la finestra di dialogo di installazione. Se la finestra di avanzamento non viene visualizzato un errore, è in corso il processo di ripristino come previsto.

Nota Sono disponibili i seguenti messaggi di errore come messaggi di testo nel registro eventi o nel file registro dell'installazione che si trova in una delle seguenti cartelle e indicano che è necessario ripristinare l'istanza interessata da procedere ulteriormente:
  • Per SQL Server 2008 e SQL Server 2008 R2:
    C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap
  • Per SQL Server 2012:
    Bootstrap di C:\Program Files\Microsoft SQL Server\110\Setup
Per SQL 2005 (tutte le filiali)
Versione del prodottoMessaggio di errore quando manca il Package Installer (MSI)Messaggio di errore quando manca il pacchetto di Cache Installer (MSP)
SQL Server 2005
1636 Impossibile installare il file MSI di Windows Installer
1636 Impossibile installare il file MSP di Windows Installer
Nota È necessario esaminare i file di registro dell'installazione di stabilire se i file di cache sono mancanti. Per ulteriori informazioni su come effettuare questa operazione, passare alla sezione "Risoluzione".

Per SQL Server 2008 SP1
Versione del prodottoMessaggio di errore quando manca il Package Installer (MSI)Messaggio di errore quando manca il pacchetto di Cache Installer (MSP)
SQL Server 2008 SP1Nessun messaggio di errore
TITOLO: Errore il programma di installazione di SQL Server.
------------------------------
Il programma di installazione di SQL Server ha rilevato il seguente errore: Impossibile aprire il file di patch. Il file è: c:\WINNT\Installer\1cf506f.msp. Codice di errore 0x84B20001.
------------------------------
Per SQL Server 2008 SP3 sola generazione (rami CU/GDR non sono applicabili)
Versione del prodottoMessaggio di errore quando manca il Package Installer (MSI)Messaggio di errore quando manca il pacchetto di Cache Installer (MSP)
SP3 di SQL Server 2008
Il file MSI nella cache 'C:\Windows\Installer\2775c8.msi' è manca. Il file originale è 'sql_engine_core_inst.msi' ed è stato installato per prodotto 'Microsoft SQL Server 2008 servizi motore di Database da'<network path="">', versione '10.3.5500.0', lingua "ENU".</network>
Il file di correzione memorizzata nella cache "C:\Windows\Installer\19b19196.msp" è mancante. Il file originale per questo file nella cache è "sql_engine_core_inst.msp", che può essere installato dalla versione "Service Pack 3 per SQL Server 2008 (KB2546951) (64-bit)", 10.3.5500.0
Nota Quando si esegue un aggiornamento, viene visualizzato il seguente messaggio di errore:
Errore di SQL Server

Per SQL Server 2008 R2 SP1 solo (rami CU/GDR non sono applicabili)
Versione del prodottoMessaggio di errore quando manca il Package Installer (MSI)Messaggio di errore quando manca il pacchetto di Cache Installer (MSP)
SQL Server 2008 R2 SP1
TITOLO: Errore il programma di installazione di SQL Server.
------------------------------
Il programma di installazione di SQL Server ha rilevato l'errore seguente: C:\Windows\Installer\932b909.msi.
------------------------------
Il file di correzione memorizzata nella cache "C:\Windows\Installer\105441.msp" è mancante. Il file originale per questo file nella cache è "sql_engine_core_inst_loc.msp", che può essere installato da "Service Pack 1 per SQL Server 2008 R2 (KB2528583) (64-bit)", versione 10.51.2500.0.
Nota Quando si esegue un aggiornamento, viene visualizzato il seguente messaggio di errore:
Errore di SQL Server

Per SQL Server 2008 R2 SP2
Versione del prodottoMessaggio di errore quando manca il Package Installer (MSI)Messaggio di errore quando manca il pacchetto di Cache Installer (MSP)
SQL Server 2008 R2 SP1
Il file MSI nella cache 'C:\Windows\Installer\932b909.msi' è manca. Il file originale è 'sql_engine_core_inst.msi' ed è stato installato per prodotto 'SQL Server 2008 R2 SP1 servizi motore di Database da'<network path="">', versione '10.51.2500.0', lingua "ENU".</network>
Il file di correzione memorizzata nella cache "C:\Windows\Installer\105441.msp" è mancante. Il file originale per questo file nella cache è "sql_engine_core_inst_loc.msp", che può essere installato da "Service Pack 1 per SQL Server 2008 R2 (KB2528583) (64-bit)", versione 10.51.2500.0.
Nota Quando si esegue un aggiornamento, viene visualizzato il seguente messaggio di errore:
Errore di SQL Server

Per SQL Server 2012 prima CU2
Sono presenti messaggi per i file MSP o MSI mancanti. Tuttavia, il codice di errore 1714 viene registrato nel Registro di installazione.

Nel file Summary. txt:
Nome componente: file di supporto di installazione di SQL Server
Codice di errore componente: 1714

Nel file Detail:
<Date><Time>SLP: Sco: il File 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi' non esiste
<Date><Time>SLP: Sco: il File 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi' non esiste
<Date><Time>SLP: Checkpoint: PREINSTALL_SQLSUPPORT_CPU64_ACTION
<Date><Time>SLP: Sco: tentativo di creare una chiave di base del Registro di sistema HKEY_LOCAL_MACHINE, computer<Server name="">
<Date><Time>SLP: Sco: tentativo di aprire la sottochiave del Registro di sistema Software\Microsoft\Windows\CurrentVersion\Installer
<Date><Time>SLP: Sco: tentativo di ottenere il valore del Registro di sistema InstallerLocation
<Date><Time>SLP: Windows installer versione: 5.0.7601.17514
<Date><Time>SLP: Sco: in attesa del servizio 'msiserver' accettare la richiesta di arresto.
<Date><Time>SLP: Sco: tentativo di aprire Gestione controllo servizi
<Date><Time>SLP: Sco: tentativo di aprire l'handle del servizio per servizio msiserver
<Date><Time>SLP: Chiamata API QueryServiceStatus Win32
<Date><Time>SLP: Sco: tentativo di chiudere l'handle del servizio per servizio msiserver
<Date><Time>SLP: Sco: tentativo di chiusura Gestione controllo servizi
<Date><Time>SLP: Pacchetto di destinazione: "d:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\SqlSupport.msi"
<Date><Time>SLP: Errore MSI: 1714 non è possibile rimuovere la versione precedente di Microsoft SQL Server 2012 il programma di installazione (inglese). Contattare il supporto tecnico.
<Date><Time>SLP: InstallPackage: MsiInstallProduct ha restituito il codice di risultato 1603.
<Date><Time>SLP: Utilizza un codice di errore MSI per rilevare l'opzione tentativi: 1714
<Date><Time>SLP: Nessun grado a riprova MSI restituiscono codice rilevato.</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>

Per SQL Server 2012 CU2 (e qualsiasi CU o SP)
Versione del prodottoMessaggio di errore quando manca il Package Installer (MSI)Messaggio di errore quando manca il pacchetto di Cache Installer (MSP)
SQL Server 2008 R2 SP1
Il file MSI nella cache ' C:\Windows\Installer\<file_encoded_name>. msi ' mancante. Il file originale è ' C:\Windows\Installer\sql_<featurename>. msi '}' ed è stato installato per prodotto ' Microsoft SQL Server <version>' da 'C:\originalfolder', versione '<versionnumber>', lingua '<language>'.</language> </versionnumber> </version> </featurename> </file_encoded_name>
Il file di correzione memorizzata nella cache "c:\Windows\Installer\1fdb1aec.msp" è mancante. Il file originale è "sql_engine_core_inst.msp", che può essere installato dal file di correzione memorizzata nella cache 11.00.2100.60.The versione "Hotfix 2316 per SQL Server 2012 (KB2679368) (64-bit)", "C:\Windows\Installer\<file_encoded_name>msp ' mancante. Il file originale è ' C:\Windows\Installer\sql_<featurename>msp '}', che può essere installato da "Hotfix <number>per SQL Server 2012 <KB number="">', versione '<versionnumber>'.</versionnumber> </KB> </number> </featurename> </file_encoded_name>
Nota In determinate condizioni in SQL Server 2012, media RTM potrebbe non essere registrato correttamente. Quando si disinstalla un aggiornamento cumulativo o un service pack in tali circostanze, il programma di installazione può richiedere è media RTM. Per risolvere questo problema, specificare il percorso di media RTM durante il processo di rimozione della patch.
Cause
Questi problemi possono verificarsi quando il file di database di Windows Installer (MSI) o il file di patch di Windows Installer (msp) non è presente nella cache di Windows Installer. La cache di Windows Installer si trova nella seguente cartella:
%windir%\Installer
Quando un prodotto viene installato tramite Windows Installer, una versione del file MSI originale ridotto viene memorizzata nella cache di Windows Installer. Tutti gli aggiornamenti al prodotto ad esempio un'installazione del Service pack, un hotfix o un aggiornamento cumulativo memorizza anche il pertinente msp o file con estensione msi nella cache di Windows Installer.

Qualsiasi aggiornamento futuro per il prodotto ad esempio un'installazione del Service pack, un hotfix o un aggiornamento cumulativo si basa sulle informazioni nei file che vengono memorizzati nella cache di Windows Installer. Senza queste informazioni, il nuovo aggiornamento non può eseguire le trasformazioni richieste.
Risoluzione
Per risolvere questi problemi, utilizzare una delle procedure riportate di seguito.

Procedura 1: Utilizzare uno script

Per completare la procedura descritta in questa procedura, è necessario copiare il Script FindSQLInstalls.vbs dalla sezione "Informazioni" in una cartella locale sul computer in cui si sta tentando di aggiornare l'installazione di SQL Server.

Nota Lo script FindSQLInstalls.vbs raccoglie le informazioni per risolvere i percorsi del pacchetto non valido. E, questo script viene utilizzato con i percorsi di origine per assicurarsi che tutti i pacchetti MSP sono nella directory della cache di Windows Installer. Tutti i pacchetti mancanti saranno nuovamente aggiunti se è disponibile il supporto originale.

Per risolvere questi problemi utilizzando uno script, attenersi alla seguente procedura:
  1. Individuare la directory in cui salvare il contenuto dello script.
  2. Aprire un prompt dei comandi con privilegi elevato per la directory in cui salvare lo script ed eseguire il comando seguente:
    Cscript FindSQLInstalls.vbs %computername%_sql_install_details.txt
  3. Aprire il file dal punto 2 in un editor di testo come blocco note e identificare i problemi che causano l'errore. A tale scopo, cercare nel file di testo per stringhe e i modelli come il seguente:
    • non
    • !!!
  4. In base ai risultati nel passaggio 3, adottare le misure necessarie.

    Nota Cercare ulteriori informazioni su questi passaggi nella sezione "Esempi".

  5. Ripetere i passaggi da 2 a 4 fino a quando il file di testo che viene creato nel passaggio 2 non contiene testo che fa riferimento a percorsi non validi o mancanti per il componente che viene aggiornata.

Esempi

Negli esempi seguenti sono le voci e le spiegazioni delle azioni descritte nel file di output che viene generato quando si esegue lo script FindSQLInstalls.vbs.

Esempio 1: Mancano i file di programma di installazione
Di seguito è riportato un esempio dell'output generato quando manca un pacchetto msi nella cartella della cache di 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 riga "LastUsedSource" punta al percorso utilizzato per eseguire il programma di installazione.

Nella riga "LastUsedSource", la voce m; significa media e indica che l'origine supporti CD/DVD.

Nell'esempio seguente, l'origine è un CD o DVD nell'unità G. Se si è verificato l'installazione da una cartella di file o da una condivisione di rete, la riga inizia con una voce ; n , "LastUsedSource" seguito da una voce Numeric_Data_Name; quindi il percorso effettivo:
!!!! 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\ 

L'azione"necessaria" riga Mostra il percorso completo che deve essere presente per aggiornare i file mancanti per il supporto di installazione originale:
Installer Cache File: C:\WINDOWS\Installer\19b4d2.msi 

La riga "Programma di installazione File di Cache" conferma il nome del file di cache installer:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! C:\WINDOWS\Installer\19b4d2.msi DOES NOT exist in the Installer cache. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Nella sezione seguente dell'output informa delle azioni necessarie per risolvere i file mancanti:
 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.
Esempio 2: Di patch mancanti
Le patch mancanti potrebbero voci simili a quelle nell'esempio 1. La maggior parte dei casi, si noterà che le voci nella riga "Patch LastUsedSource" che fanno riferimento a una patch, e questa riga è simile al seguente:
Patch LastUsedSource:   n;1;c:\0ca91e857a4f12dd390f0821a3\HotFixSQL\Files\

Questo output indica quanto segue l'installazione della patch:
  • La patch originale è stata installata facendo doppio clic sul file eseguibile della patch.
  • Il programma di installazione della patch utilizzata una cartella temp, c:\0ca91e857a4f12dd390f0821a3, durante l'installazione della patch.
  • Per ricreare il percorso, è necessario eseguire lo stesso eseguibile e aggiungere il seguente parametro:
    /x:c:\0ca91e857a4f12dd390f0821a3
    Nota Questo comando fa sì che l'eseguibile per estrarre i file nella posizione precedente manca e ciò consente di ricreare la struttura necessaria per aggiornare la cache di Windows installer con i file mancanti. La posizione effettiva può variare e un'unica patch come un service pack potrebbe essere necessario estrarre a più posizioni. Ogni prodotto installato include una sezione che contiene le seguenti informazioni per "Patch installate":
    Display name:KB Article URL:  http://support.microsoft.com/?kbid=<value>Patch LastUsedSource: 

    La riga "URL articolo KB" consente di scaricare le patch, se necessario.

Procedura 2: Ripristinare manualmente i file

Per ripristinare manualmente i file che mancano dalla cache di Windows Installer, attenersi alla seguente procedura:
  1. Raccogliere i dettagli completi sul file manca dal messaggio di errore, dal file di registro di installazione o dalle voci del Registro di sistema che vengono gestite da Windows Installer. 1 messaggio di errore nella sezione "Sintomi", ad esempio, tutte le informazioni necessarie per risolvere il problema sono presente nel messaggio di errore:
    • PatchName: "1702 di Hotfix per SQL Server 2008 R2 (KB981355) (64-bit)"
    • I file MSP originale che viene utilizzato con la Patch: sql_engine_core_inst.msp
    • Memorizzati nella cache i file MSP: c:\Windows\Installer\1fdb1aec.msp
  2. Se si dispone di tutti i dettagli, vedere la "ulteriori informazioni per la sezione 2" procedura per la procedura di raccogliere queste informazioni.
  3. Visita http://support.microsoft.come cercare l'articolo della Knowledge Base associato a questa patch. In questo esempio, è necessario cercare KB981355.
  4. Scaricare il pacchetto di patch al computer. Assicurarsi che il download del pacchetto della patch corrispondente per la piattaforma richiesta. In questo esempio, il pacchetto è SQLServer2008R2-KB981355-x64.exe.
  5. Estrarre il contenuto del pacchetto di patch utilizzando la sintassi seguente:
    C:\Temp>SQLServer2008R2-KB981355-x64.exe /x C:\Temp\SQLServer2008R2-KB981355-x64\
  6. Individuare il file sql_engine_core_inst.msp file msp originale. Il file deve essere nella cartella seguente:
    C:\Temp\SQLServer2008R2-KB981355-x64\x64\setup\sql_engine_core_inst_msi\
  7. Copiare il file msp originale alla cache di Windows Installer seguente:
    %windir%\installer\
  8. Rinominare il file msp originale, sql_engine_core_inst.msp, con il seguente nome:
    1fdb1aec.msp file msp memorizzati nella cache

È possibile avviare il programma di installazione per l'aggiornamento che ha causato l'errore e riprendere il processo di aggiornamento. È possibile riscontrare questo messaggio per un file di cache Windows Installer mancante per un altro componente o per un altro aggiornamento dello stesso prodotto.

Per ottenere un elenco di tutti i Windows Installer cache file mancanti che riguardano i componenti del prodotto SQL Server, è possibile scaricare lo strumento di SQL Server 2008 R2 BPA menzionato nella sezione "Informazioni".

Se il messaggio di errore fa riferimento a un file di database di Windows Installer (MSI) mancante, non è necessario eseguire i passaggi da 2 a 4. Al contrario, è possibile passare direttamente al passaggio 5. È necessario individuare il file msi dal supporto originale utilizzato per installare il prodotto. Se questo messaggio di errore è stato generato per sql_engine_core_inst.msi, è necessario individuare il file dal supporto di installazione sotto la seguente struttura di cartelle:
\x64\setup\sql_engine_core_inst_msi\
Gli altri passaggi sono gli stessi.

Ulteriori informazioni per procedura 2

Come individuare il pacchetto di patch e i dettagli del prodotto di un file msp mancante
Diverse versioni del prodotto generano diversi messaggi di errore per questo problema. I messaggi di errore menzionati nella sezione "Sintomi" vengono visualizzati per i programmi di installazione per gli aggiornamenti a partire da Microsoft SQL Server 2008 SP1. Per altri aggiornamenti, vengono visualizzati messaggi di errore che possono non chiaramente specificare quale file di patch non è presente nella cache di Windows Installer e i dettagli di aggiornamento specifico. Questi messaggi di errore, i file di registro dell'installazione conterrà informazioni relative al file di cache di Windows Installer manca. Il Registro di installazione di un esempio simile al seguente:
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

Se si esamina attentamente il Registro di installazione, già fornisce le informazioni sul file MSP originale che è stato utilizzato con la seguente patch:
sqlrun_sql.msp


Per ulteriori informazioni sui file msp mancanti nella cache di Windows Installer, attenersi alla seguente procedura:
  1. Cercare il file msp mancante nella seguente sottochiave del Registro di sistema le patch di Windows Installer:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\
  2. Trovare il GUID della Patch.
  3. Cercare il GUID della Patch nella seguente sottochiave del Registro di sistema di prodotti Windows Installer:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
Per il Registro di installazione di esempio, le informazioni sui file msp mancanti e i dettagli di patch corrispondenti sono presenti nelle voci del Registro di sistema seguenti:

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

Valore: 0
Nome: LocalPackage
Dati: C:\WINDOWS\Installer\145258.msp

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\1EB3A031CC585314E87AA527E46EECC2\Patches\A3B085EA74A9A7640A496636F7EF9A44
Valore: 6
Nome: DisplayName
Dati: GDR 2050 per SQL Server Database Services 2005 ENU (KB932555)

A questo punto si dispongono di tutti i punti di informazioni per avviare la procedura per risolvere i file mancanti nella cache di Windows Installer.

Nota Se si utilizza Microsoft SQL Server 2008 Service Pack 3 (SP3) o versione successiva, è inoltre possibile ricevere un messaggio di errore analogo per i file con estensione msi mancante. Utilizzando questo messaggio di errore, è possibile determinare rapidamente quale file è mancante, il service pack da scaricare, e in cui è possibile trovare il download.

Per ulteriori informazioni su come ottenere il service pack, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
2546951 Elenco di bug risolti in SQL Server 2008 Service Pack 3

Informazioni
Per ulteriori informazioni sui file di database (. msi) di Windows Installer, visitare il seguente sito Web Microsoft Developer Network (MSDN):Per ulteriori informazioni sui file (file con estensione msp) patch di Windows Installer, visitare il seguente sito Web MSDN:Per ulteriori informazioni relative ai dettagli interni della cache di Windows Installer, vedere il blog di MSDN seguente:Per ulteriori informazioni sul processo di gestione delle patch, vedere il blog di MSDN seguente:Per ulteriori informazioni su come assicurarsi di memorizzare nella cache il file di patch per la piattaforma corretta, vedere il blog di MSDN seguente:Per ulteriori informazioni su perché qualsiasi prodotto che utilizza Windows Installer può verificarsi questo problema, vedere il blog di MSDN seguente:Per ulteriori informazioni relative ai dettagli sui diversi set di messaggi di errore visualizzati nei file di log dell'installazione, vedere il blog di MSDN seguente:

Per ulteriori informazioni su prodotti o strumenti che automaticamente per verificare questa condizione sull'istanza di SQL Server e sulle versioni del prodotto SQL Server, vedere la tabella riportata di seguito:
Software di regolaTitolo regolaDescrizione della regolaVersioni del prodotto per la quale viene valutata la regola
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Installazione - cache Installer non è presente per l'installazione di SQLIn SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) viene fornita una regola per rilevare i file della cache mancante Installer per i componenti di SQL Server. Il BPA di SQL Server 2008 R2 supporta SQL Server 2008 e SQL Server 2008 R2. Se si esegue lo strumento BPA e si verifica un errore con il titolo del programma di installazione - cache Installer non è disponibile per l'installazione di SQL e quindi i file di cache mancano dalla cartella della cache.SQL Server 2008
SQL Server 2008 R2
SQL Server 2012 Best Practice Analyzer (BPA di SQL Server 2012)Installazione - cache Installer non è presente per l'installazione di SQLSQL Server 2012 Best Practice Analyzer (BPA di SQL Server 2012) viene fornita una regola per rilevare i file della cache mancante Installer per i componenti di SQL Server. Se si esegue lo strumento BPA e si verifica un errore con il titolo del programma di installazione - cache Installer non è disponibile per l'installazione di SQL e quindi i file di cache mancano dalla cartella della cache.SQL Server 2012



Script 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

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 969052 - Ultima revisione: 03/09/2016 06:56:00 - Revisione: 15.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 KbMtit
Feedback