Como restaurar os ficheiros de cache do Windows Installer em falta e resolver problemas que ocorrem durante uma actualização do SQL Server

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 969052
Sintomas
O processo descrito neste artigo fornece apenas de socorro urgente e não uma correcção permanente. Os clientes que utilizam este processo de emergência devem validar a respectiva Cache de programa de instalação do Windows utilizando oPacote do Verificador de Cache do Windows Installer, acordo com as instruções no artigo BDC 2667628.

Quando tenta instalar um service pack do Microsoft SQL Server ou uma actualização cumulativa, que poderá encontrar as seguintes mensagens de erro e thesemay indicar problemas de Cache do Windows Installer. A Cache do programa de instalação do Windows, localizado na pastac:\Windows\Installer. , armazena importantes ficheiros para aplicações instaladas utilizando a tecnologia Windows Installer e não devem ser eliminados. Se tiver sido afectada na cache do installer, poderá não imediatamente Consulte problemas enquanto executa uma acção como desinstalar, reparar ou actualizar o SQL Server.

Quando instala o SQL Server, danificar Installer armazena ficheiros críticos na Cache do Windows Installer (a predefinição é c:\Windows\Installer.). Estes ficheiros são necessários para desinstalação e actualização de aplicações. Não não possível copiar ficheiros em falta entre computadores, porque são exclusivos.

A Microsoft recomenda que para as instalações do SQL Server primeiro utilize o processo de reparação é descrito nos seguintes artigos para verificar a instalação actual:

Deve executar a reparação de suporte de instalação original, utilizando a seguinte linha de comandos:

Setup.exe. vbs /ACTION = reparação /INDICATEPROGRESS = TRUE

Reparar as funcionalidades e componentes partilhados comuns em primeiro lugar e, em seguida, repita o comando para reparar as instâncias instaladas. Durante o processo de reparação, a caixa de diálogo do programa de configuração desaparece. A janela de progresso não for apresentado um erro, desde que o processo de reparação prossegue conforme esperado.

Nota As seguintes mensagens de erro podem ser encontradas como mensagens de texto no registo de eventos ou nos registos do programa de configuração que sejam encontram das seguintes pastas e indicam que deverá reparar a instância afectada que está a ser continuar:
  • Para o SQL Server 2008 e para o SQL Server 2008 R2:
    C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap
  • Para o SQL Server 2012:
    C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap
Para o SQL 2005 (todas as sucursais)
Versão do produtoMensagem de erro quando o pacote do Installer (MSI) está em faltaMensagem de erro quando o pacote de Cache do programa de instalação (MSP) está em falta
SQL Server 2005
1636 não é possível instalar o ficheiro MSI Windows Installer
1636 não é possível instalar o ficheiro Windows Installer MSP
Nota Tem de rever os ficheiros de registo do programa de configuração para identificar se quaisquer ficheiros de cache estão em falta. Para mais informações sobre como efectuar este procedimento, vá para a secção "Resolução".

Para o SQL Server 2008 SP1
Versão do produtoMensagem de erro quando o pacote do Installer (MSI) está em faltaMensagem de erro quando o pacote de Cache do programa de instalação (MSP) está em falta
SQL Server 2008 SP1Nenhuma mensagem de erro
Título: Falha o programa de configuração do SQL Server.
------------------------------
O programa de configuração do SQL Server encontrou o seguinte erro: não é possível abrir o ficheiro de patch. O ficheiro é: c:\WINNT\Installer\1cf506f.msp. Código de erro 0x84B20001.
------------------------------
Para o SQL Server 2008 SP3 só de compilação (não são aplicáveis os ramos de CU/GDR)
Versão do produtoMensagem de erro quando o pacote do Installer (MSI) está em faltaMensagem de erro quando o pacote de Cache do programa de instalação (MSP) está em falta
SQL Server 2008 SP3
O ficheiro MSI em cache 'C:\Windows\Installer\2775c8.msi' está em falta. O ficheiro original é 'sql_engine_core_inst.msi' e foi instalado para o produto «Serviços Microsoft SQL Server 2008 da base de dados motor de»<network path="">', versão '10.3.5500.0' Idioma 'ENU'.</network>
O ficheiro do patch em cache "C:\Windows\Installer\19b19196.msp" está em falta. O ficheiro original para este ficheiro em cache é "sql_engine_core_inst.msp", que pode ser instalado a versão de "Service Pack 3 para SQL Server 2008 (KB2546951) (64-bit)", 10.3.5500.0
Nota Recebe a seguinte mensagem de erro quando efectuar uma actualização:
Erro do SQL Server

Para o SQL Server 2008 R2 SP1 apenas (não são aplicáveis os ramos de CU/GDR)
Versão do produtoMensagem de erro quando o pacote do Installer (MSI) está em faltaMensagem de erro quando o pacote de Cache do programa de instalação (MSP) está em falta
SQL Server 2008 R2 SP1
Título: Falha o programa de configuração do SQL Server.
------------------------------
O programa de configuração do SQL Server encontrou o seguinte erro: C:\Windows\Installer\932b909.msi.
------------------------------
O ficheiro do patch em cache "C:\Windows\Installer\105441.msp" está em falta. O ficheiro original para este ficheiro em cache é "sql_engine_core_inst_loc.msp", que pode ser instalado a partir de "Service Pack 1 para o SQL Server 2008 R2 (KB2528583) (64-bit)", versão 10.51.2500.0.
Nota Recebe a seguinte mensagem de erro quando efectuar uma actualização:
Erro do SQL Server

Para o SQL Server 2008 R2 SP2
Versão do produtoMensagem de erro quando o pacote do Installer (MSI) está em faltaMensagem de erro quando o pacote de Cache do programa de instalação (MSP) está em falta
SQL Server 2008 R2 SP1
O ficheiro MSI em cache 'C:\Windows\Installer\932b909.msi' está em falta. O ficheiro original é 'sql_engine_core_inst.msi' e foi instalado para o produto «Serviços SQL Server 2008 R2 SP1 da base de dados motor de»<network path="">', versão '10.51.2500.0' Idioma 'ENU'.</network>
O ficheiro do patch em cache "C:\Windows\Installer\105441.msp" está em falta. O ficheiro original para este ficheiro em cache é "sql_engine_core_inst_loc.msp", que pode ser instalado a partir de "Service Pack 1 para o SQL Server 2008 R2 (KB2528583) (64-bit)", versão 10.51.2500.0.
Nota Recebe a seguinte mensagem de erro quando efectuar uma actualização:
Erro do SQL Server

Para o SQL Server 2012 antes de CU2
Não existe nenhuma mensagem para os ficheiros MSP ou MSI em falta. No entanto, o código de erro 1714 é registado no registo do programa de configuração.

No ficheiro Summary:
Nome do componente: ficheiros de suporte de configuração do SQL Server
Código de erro de componente: 1714

No ficheiro Detail.txt:
<Date><Time>O SLP: Sco: o ficheiro 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi' não existe
<Date><Time>O SLP: Sco: o ficheiro 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi' não existe
<Date><Time>SLP: Ponto de verificação: PREINSTALL_SQLSUPPORT_CPU64_ACTION
<Date><Time>O SLP: Sco: a tentar criar a chave de registo base HKEY_LOCAL_MACHINE, máquina<Server name="">
<Date><Time>O SLP: Sco: a tentar abrir a subchave de registo Software\Microsoft\Windows\CurrentVersion\Installer
<Date><Time>O SLP: Sco: a tentar obter o valor de registo InstallerLocation
<Date><Time>SLP: Versão de programa de instalação do Windows: 5.0.7601.17514
<Date><Time>SLP: Sco: espera para o serviço 'msiserver' aceitar o pedido de paragem.
<Date><Time>O SLP: Sco: tentar abrir o Gestor de SC
<Date><Time>O SLP: Sco: a tentar abrir o identificador de serviço para o serviço msiserver
<Date><Time>O SLP: Invocar a API do Win32 de QueryServiceStatus
<Date><Time>O SLP: Sco: tentar fechar o identificador de serviço para o serviço msiserver
<Date><Time>O SLP: Sco: a tentar fechar o Gestor de SC
<Date><Time>SLP: Pacote de destino: "d:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\SqlSupport.msi"
<Date><Time>SLP: Erro MSI: 1714 não é possível remover a versão mais antiga do programa de configuração do Microsoft SQL Server 2012 (inglês). Contacte o grupo de suporte técnico.
<Date><Time>O SLP: InstallPackage: MsiInstallProduct devolveu o código de resultado 1603.
<Date><Time>SLP: Utiliza o código de erro MSI para detectar a opção de repetição: 1714
<Date><Time>O SLP: Nenhum MSI capaz de repetir devolver código detectado.</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>

Para CU2 de 2012 do SQL Server (e quaisquer subsequentes CU ou SP)
Versão do produtoMensagem de erro quando o pacote do Installer (MSI) está em faltaMensagem de erro quando o pacote de Cache do programa de instalação (MSP) está em falta
SQL Server 2008 R2 SP1
O ficheiro MSI em cache ' C:\Windows\Installer\<file_encoded_name>. msi ' está em falta. É o respectivo ficheiro original ' C:\Windows\Installer\sql_<featurename>. msi '}' e ele foi instalado para o produto ' Microsoft SQL Server <version>' de 'C:\originalfolder' versão '<versionnumber>', idioma '<language>'.</language> </versionnumber> </version> </featurename> </file_encoded_name>
O ficheiro do patch em cache "c:\Windows\Installer\1fdb1aec.msp" está em falta. O ficheiro original é "sql_engine_core_inst.msp", que pode ser instalado a partir do ficheiro de patch em cache de 11.00.2100.60.The de versão de "Correcção 2316 para o SQL Server 2012 (KB2679368) (64-bit)", "C:\Windows\Installer\<file_encoded_name>. msp ' está em falta. É o respectivo ficheiro original ' C:\Windows\Installer\sql_<featurename>. msp '}', que pode ser instalado a partir de ' correcção <number>de 2012 do SQL Server <KB number="">', versão '<versionnumber>'.</versionnumber> </KB> </number> </featurename> </file_encoded_name>
Nota Em determinadas condições no SQL Server 2012, RTM media pode não estar registado correctamente. Quando desinstalar uma actualização cumulativa ou um service pack nessas circunstâncias, o programa de configuração poderá pedir-lhe suporte RTM. Para contornar este problema, forneça o caminho de suporte de dados RTM durante o processo de remoção do patch.
Causa
Estes problemas poderão ocorrer quando o ficheiro de base de dados do Windows Installer (. msi) ou ficheiro de patch do Windows Installer (. msp) está em falta a partir da cache do Windows Installer. Cache do Windows Installer está localizada na seguinte pasta:
%windir%\Installer
Quando um produto é instalado utilizando o Windows Installer, uma versão do ficheiro. msi original arrastada é armazenada na cache do Windows Installer. Todas as actualizações ao produto tal como uma correcção, uma actualização cumulativa ou uma configuração do service pack, também guarda o ficheiro. msi ou. msp relevantes na cache do Windows Installer.

Qualquer futura actualização para o produto como uma correcção, uma actualização cumulativa ou configuração do service pack, baseia-se nas informações nos ficheiros que estão armazenados na cache do Windows Installer. Sem estas informações, a nova actualização não é possível efectuar as transformações necessárias.
Resolução
Para resolver estes problemas, utilize um dos seguintes procedimentos.

Procedimento 1: Utilizar um script

Para concluir os passos neste procedimento, tem de copiar o Script de FindSQLInstalls.vbs da secção "Mais informação" para uma pasta local no computador onde está a tentar actualizar a instalação do SQL Server.

Nota O script FindSQLInstalls.vbs recolhe as informações para corrigir os caminhos de pacote inválido. E, este script é utilizado contra as localizações de origem para se certificar de que todos os pacotes MSP estão no directório da cache do Windows Installer. Todos os pacotes em falta será novamente adicionados se o suporte de dados de origem original está disponível.

Para resolver estes problemas, utilizando um script, siga estes passos:
  1. Localize o directório em que guardou o conteúdo de script.
  2. Abra uma linha de comandos elevada para o directório em que guardou o script e execute o seguinte comando:
    Cscript FindSQLInstalls.vbs %computername%_sql_install_details.txt
  3. Abrir o ficheiro a partir do passo 2. o num editor de texto como o Notepad e identificar os problemas que estão a causar a falha. Para tal, procure o ficheiro de texto para padrões de cadeia, tal como o seguinte:
    • não
    • !!!
  4. Com base nos resultados no passo 3, tome as medidas necessárias.

    Nota Procure mais informações sobre estes passos na secção "Exemplos".

  5. Repita os passos 2 a 4 até que o ficheiro de texto que é criado no passo 2 já não contém texto que referencia inválidos caminhos ou ficheiros em falta para o componente que está a ser actualizado.

Exemplos

Os exemplos seguintes são as entradas e as explicações das acções descritas no ficheiro de saída que é gerado quando executar o script FindSQLInstalls.vbs.

Exemplo 1: Ficheiros de programa de instalação em falta
Segue-se um exemplo do resultado que é gerado quando um pacote. msi na pasta da cache do Windows Installer está em falta.
================================================================================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\

A linha "LastUsedSource" aponta para a localização que foi utilizada para executar o programa de configuração.

Na linha "LastUsedSource", a entrada de m; significa media e indica que a origem original suportes de CD/DVD.

No exemplo seguinte, a origem é um CD ou DVD na unidade G. Se a instalação ocorreu a partir de uma pasta de ficheiros ou de uma partilha de rede, a linha começa com uma entrada de n; "LastUsedSource" seguido de uma entrada de Numeric_Data_Name; e, em seguida, o caminho real:
!!!! 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\ 

"Acção necessária" linha mostra o caminho completo que tem de existir para actualizar ficheiros em falta para o suporte de instalação original:
Installer Cache File: C:\WINDOWS\Installer\19b4d2.msi 

A linha de "Ficheiro de Cache do programa de instalação" confirma o nome do ficheiro de cache do installer:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! C:\WINDOWS\Installer\19b4d2.msi DOES NOT exist in the Installer cache. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

A secção seguinte do resultado aconselha a acções que são necessários para resolver os ficheiros em falta:
 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.
Exemplo 2: Patches em falta
Patches em falta podem resultar em entradas semelhantes do exemplo 1. A maioria das vezes, irá reparar na linha de "Patch LastUsedSource" as entradas que referenciam um patch e esta linha é semelhante ao seguinte:
Patch LastUsedSource:   n;1;c:\0ca91e857a4f12dd390f0821a3\HotFixSQL\Files\

Este resultado indica as seguintes, sobre a instalação do patch:
  • Foi instalado o patch original clicando duas vezes no ficheiro executável do patch.
  • O programa de instalação do patch utilizado numa pasta temp, c:\0ca91e857a4f12dd390f0821a3, durante a instalação do patch.
  • Para recriar o caminho, tem de executar o mesmo executável e adiciona o seguinte parâmetro:
    /x:c:\0ca91e857a4f12dd390f0821a3
    Nota Este comando força o executável para extrair os ficheiros para a localização anterior em falta e, este recria a estrutura que é necessária para actualizar a cache do Windows installer com eventuais ficheiros em falta. Varia consoante a localização real e poderá ter um único patch como um service pack sejam extraídos para várias localizações. Cada produto instalado inclui uma secção que contém as seguintes informações para "Patches instalados":
    Display name:KB Article URL:  http://support.microsoft.com/?kbid=<value>Patch LastUsedSource: 

    A linha "URL de artigo KB" pode ajudar a transferir qualquer suporte de patch, se for necessário.

Procedimento 2: Restaurar manualmente os ficheiros

Para restaurar manualmente os ficheiros que estão em falta a partir da cache do Windows Installer, siga estes passos:
  1. Recolha os detalhes completos sobre o ficheiro em falta da mensagem de erro, a partir do ficheiro de registo de configuração ou a partir das entradas de registo que são mantidas pelo Windows Installer. Por exemplo, em 1 de mensagem de erro na secção "Sintomas", todas as informações necessárias para resolver o problema está presentes na mensagem de erro:
    • PatchName: "correcção 1702 para o SQL Server 2008 R2 (KB981355) (64-bit)"
    • Ficheiro MSP original que é utilizado pelo Patch: sql_engine_core_inst.msp
    • Ficheiro MSP em cache: c:\Windows\Installer\1fdb1aec.msp
  2. Se não tiver todos os detalhes, consulte o "mais informações para a secção 2" procedimento para os passos recolher estes detalhes.
  3. Visite http://support.microsoft.come procure o artigo da KB que está associado este patch. Neste exemplo, tem de procurar KB981355.
  4. Transferi este pacote de patch para o computador. Certifique-se de que transferir o pacote de patch correspondente para a plataforma necessária. Neste exemplo, o pacote é SQLServer2008R2-KB981355-x64.exe.
  5. Extrai o conteúdo do pacote de patch, utilizando a sintaxe seguinte:
    C:\Temp>SQLServer2008R2-KB981355-x64.exe /x C:\Temp\SQLServer2008R2-KB981355-x64\
  6. Localize o ficheiro de sql_engine_core_inst.msp de ficheiro msp original. O ficheiro deve ter a seguinte pasta:
    C:\Temp\SQLServer2008R2-KB981355-x64\x64\setup\sql_engine_core_inst_msi\
  7. Copie este ficheiro msp original para a cache do Windows Installer seguinte:
    %windir%\installer\
  8. Mudar o nome do ficheiro msp original, sql_engine_core_inst.msp, para o seguinte nome:
    1fdb1aec.msp de ficheiros msp em cache

Pode iniciar o programa de configuração para a actualização que resultou no erro e continuar o processo de actualização. Poderá encontrar esta mensagem para um ficheiro de cache do Windows Installer em falta para outro componente ou por outra actualização do mesmo produto.

Para obter uma lista de todos os ficheiros em falta do Windows Installer cache relacionados com os componentes do produto SQL Server, pode transferir a ferramenta do BPA do SQL Server 2008 R2, que é mencionada na secção "Mais informação".

Se a mensagem de erro fizer referência a um ficheiro de base de dados em falta do Windows Installer (. msi), não tem de efectuar os passos 2 a 4. Em vez disso, pode ir directamente para o passo 5. Tem de localizar o. msi do suporte original que utilizou para instalar o produto. Se esta mensagem de erro foi gerada para sql_engine_core_inst.msi, em seguida, tem de localizar este ficheiro a partir do suporte de configuração sob a seguinte estrutura de pastas:
\x64\setup\sql_engine_core_inst_msi\
Os outros passos são iguais.

Mais informações para o procedimento 2

Como localizar o pacote de patch e os detalhes do produto para um ficheiro. msp em falta
Versões diferentes do produto geram mensagens de erro diferentes para este problema. As mensagens de erro mencionadas na secção "Sintomas" são apresentadas para programas de configuração de actualizações a partir do Microsoft SQL Server 2008 SP1. Para obter outras actualizações, receberá mensagens de erro que podem não claramente especificar qual o ficheiro patch estiver em falta na cache do Windows Installer e os detalhes de actualização específica. Para estas mensagens de erro, os ficheiros de registo do programa de configuração irão conter informações sobre o ficheiro de cache do Windows Installer em falta. Um exemplo de registo de configuração é semelhante ao seguinte:
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 cuidadosamente a examinar este registo de configuração, ele já dá-lhe as informações sobre o ficheiro Original MSP que foi utilizado pelo seguinte patch:
sqlrun_sql.msp


Para obter mais detalhes sobre o ficheiro. msp em falta na cache do Windows Installer, siga estes passos:
  1. Procurar o ficheiro. msp em falta na seguinte subchave de registo do Windows Installer Patches:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\
  2. Localize o GUID do Patch.
  3. Procurar o GUID de Patch na seguinte subchave de registo de produtos do Windows Installer:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
Para o registo de configuração de exemplo, as informações sobre o ficheiro. msp em falta e os detalhes de patch correspondentes estão presentes nas seguintes entradas de registo:

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

Valor: 0
Nome: LocalPackage
Dados: C:\WINDOWS\Installer\145258.msp

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\1EB3A031CC585314E87AA527E46EECC2\Patches\A3B085EA74A9A7640A496636F7EF9A44
Valor: 6
Nome: DisplayName
Dados: GDR 2050 para serviços de base de dados do SQL Server 2005 ENU (KB932555)

Agora dispõe de todos os pontos de informação para iniciar os passos para resolver os ficheiros em falta na cache do Windows Installer.

Nota Se utilizar o Microsoft SQL Server 2008 Service Pack 3 (SP3) ou uma versão posterior, também pode receber uma mensagem de erro semelhante para os ficheiros. msi em falta. Utilizando esta mensagem de erro, pode rapidamente determinar qual o ficheiro está em falta, o service pack para transferir, e onde pode encontrar a transferência.

Para mais informações sobre como obter o service pack, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2546951 Lista de erros corrigidos no SQL Server 2008 Service Pack 3

Mais Informação
Para mais informações sobre ficheiros de base de dados (. msi) do Windows Installer, visite o seguinte Web site da Microsoft Developer Network (MSDN):Para mais informações sobre ficheiros de (. msp) de patch do Windows Installer, visite o seguinte Web site da MSDN:Para mais informações sobre os detalhes internas da cache do Windows Installer, consulte o seguinte blogue da MSDN:Para mais informações sobre o processo de aplicação de patch, consulte o seguinte blogue da MSDN:Para mais informações sobre como certificar-se de que na cache do ficheiro de patch para a plataforma correcto, consulte o seguinte blogue da MSDN:Para mais informações sobre por que razão a qualquer produto que utiliza o Windows Installer pode encontrar este problema, consulte o seguinte blogue da MSDN:Para mais informações sobre os detalhes sobre diferentes conjuntos de mensagens de erro que aparecem nos ficheiros de registo do programa de configuração, consulte o seguinte blogue da MSDN:

Para mais informações sobre os produtos ou ferramentas que verificam automaticamente para esta condição à sua instância do SQL Server e sobre as versões do produto SQL Server, consulte a tabela seguinte:
Software de regraTítulo de regraDescrição da regraVersões de produtos contra os quais a regra é avaliada
SQL Server 2008 R2 melhor prática analisador (SQL Server 2008 R2 BPA)Programa de configuração - Installer cache está em falta para a instalação de SQLO SQL Server 2008 R2 prática analisador de melhores (SQL Server 2008 R2 BPA) fornece uma regra para detectar o ficheiro de cache do programa de instalação em falta para componentes do SQL Server. O SQL Server 2008 R2 BPA suporta o SQL Server 2008 e o SQL Server 2008 R2. Se executar a ferramenta BPA e ocorrer um erro com o título do programa de configuração - Installer cache está em falta para a instalação de SQL e, em seguida, os ficheiros de cache estão em falta a pasta da cache.SQL Server 2008
SQL Server 2008 R2
Com o formato de analisador de melhor práticas do SQL Server 2012 (BPA de 2012 do SQL Server)Programa de configuração - Installer cache está em falta para a instalação de SQLO SQL Server 2012 prática analisador de melhores (BPA de 2012 do SQL Server) fornece uma regra para detectar o ficheiro de cache do programa de instalação em falta para componentes do SQL Server. Se executar a ferramenta BPA e ocorrer um erro com o título do programa de configuração - Installer cache está em falta para a instalação de SQL e, em seguida, os ficheiros de cache estão em falta a pasta da 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

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 969052 - Última Revisão: 03/09/2016 00:48:00 - Revisão: 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 2005 Server Enterprise, 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 2005 Server Workgroup, 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 KbMtpt
Comentários