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

Traduções de Artigos Traduções de Artigos
Artigo: 969052 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas


O processo descrito neste artigo é fornecer apenas de socorro urgente e a correcção não permanente. Os clientes que utilizam este processo de emergência devem validar a respectiva Cache de programa de instalação do Windows utilizando o Pacote do Windows Installer Cache verificador de 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, que podem indicar problemas de Cache do Windows Installer. A Cache do Windows Installer, localizado na pasta c:\Windows\Installer. , armazena importante ficheiros para aplicações instaladas utilizando a tecnologia de r Installe do Windowse 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 instalar o SQL Server, o Windows Installer armazena crítica ficheiros são armazenados 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 as máquinas, uma vez que são exclusivos.

A Microsoft recomenda que para as instalações do SQL Server primeiro utilize o processo de reparação, Note-se nestes artigos para verificar a instalação actual:
Nota Como as mensagens de texto, podem ser encontradas as seguintes mensagens de erro no registo de eventos ou nos registos do programa de configuração estiverem situados das seguintes pastas e indique 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)
Reduzir esta tabelaExpandir esta tabela
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
NotaTem 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
Reduzir esta tabelaExpandir esta tabela
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)
Reduzir esta tabelaExpandir esta tabela
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. Respectivo ficheiro original é 'sql_engine_core_inst.msi' e ele foi instalado para o produto «Serviços Microsoft SQL Server 2008 base de dados motor de»<network path="">', versão de idioma 'ENU' '10.3.5500.0',.</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:
Reduzir esta imagemExpandir esta imagem
Erro do SQL Server


Para o SQL Server 2008 R2 SP1 apenas (não são aplicáveis os ramos de CU/GDR)
Reduzir esta tabelaExpandir esta tabela
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:
Reduzir esta imagemExpandir esta imagem
Erro do SQL Server


Para o SQL Server 2008 R2 SP2
Reduzir esta tabelaExpandir esta tabela
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 ele foi instalado para o produto 'SQL Server 2008 R2 SP1 base de dados do motor Services' de'<network path="">', versão de idioma 'ENU' '10.51.2500.0',.</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:
Reduzir esta imagemExpandir esta imagem
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>SLP: Sco: o ficheiro 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi' não existe
<Date><Time>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>SLP: Sco: a tentar criar a chave de registo base HKEY_LOCAL_MACHINE, máquina<Server name="">
<Date><Time>O SLP: Sco: tentar abrir a subchave de registo Software\Microsoft\Windows\CurrentVersion\Installer
<Date><Time>O SLP: Sco: 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>O SLP: Sco: aguardar 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: 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: 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>SLP: Nenhum MSI capaz de repetir código detectado de retorno.</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)
Reduzir esta tabelaExpandir esta tabela
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>para SQL Server 2012 <KB number="">', versão '<versionnumber>'.</versionnumber> </KB> </number> </featurename> </file_encoded_name>

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 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 destalada é 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.

Eventuais futuras actualizações do produto tal como uma correcção, uma actualização cumulativa ou uma 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, tais como os seguintes:
    • 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" seguidas por 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 seguinte secção da produção 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 que faltam
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 uma 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. A localização real irá variar 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 da 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 do programa 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 possui 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, terá de procurar KB981355.
  4. Transferi este pacote de patch para o computador. Certifique-se de que transfira 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 do 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-se na 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 ficheiro 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 para outra actualização do mesmo produto.

Para obter uma lista de todos os em falta do Windows Installer cache ficheiros que estão relacionados com os componentes do produto SQL Server, pode transferir a ferramenta de SQL Server 2008 R2 BPA 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 é necessário que 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" aparecem 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 1635
This 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 examinar este registo de configuração cuidadosamente,-já 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 entradas de registo seguinte:

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ções 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 poderá 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):
Base de dados do programa de instalação
Para mais informações sobre ficheiros de (. msp) de patch do Windows Installer, visite o seguinte Web site da MSDN:
Pacotes dos patches
Para mais informações sobre os detalhes internas da cache do Windows Installer, consulte o seguinte blogue da MSDN:
Cache do Windows Installer
Para mais informações sobre o processo de aplicação de patch, consulte o seguinte blogue da MSDN:
Como funciona a aplicação de patches
Para mais informações sobre como certificar-se de que na cache o ficheiro de patch para a plataforma correcto, consulte o seguinte blogue da MSDN:
O programa de configuração do SQL Server pede-lhe com "o produto instalado não coincide com a fonte de instalação (s)"
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:
Reconstruir a Cache do Installer
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:
Parte - 1: SQL Server 2005 Patch falha instalar com um erro "não é possível instalar o Windows Installer MSP ficheiro"


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:
Reduzir esta tabelaExpandir esta tabela
Software de regraTítulo de regraDescrição da regraVersões de produtos contra os quais a regra é avaliada
Analisador de prática SQL Server 2008 R2 melhores (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 encontrar 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 encontrar 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.Servidor SQL 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, arrSubKeys2
Dim objFSO, objShell, objFile, objReg, objConn, objExec
Dim strComputer, strKeyPath, strNewSource
Dim strWorkstationName, strDBPath, strSubKey, strSubKey2(), strKeyPath02,  strRetValue00
Dim 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_ROOT
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Const ForReading = 1, ForWriting = 2, ForAppEnding = 8
 
' Checking for Elevated permissions
Dim oShell, oExec
szStdOutszStdOut = ""
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 If
Loop
 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 values
strComputer = "."
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.quit
End If
 
'--Setup the output file
Set 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.quit
End 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 HKCR
objReg.EnumKey HKCR, strKeyPath, arrSubKeys
 
For Each strSubKey In arrSubKeys
 
' Define the various registry paths
strProduct01 = "Installer\Products\" & strSubKey
strKeyPath02 = "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 values
objReg.GetStringValue HKCR, strProduct01, strNValue00, strRetValue00
objReg.GetStringValue HKCR, strKeyPath02, strNValue01, strRetValue01
objReg.GetStringValue HKCR, strKeyPath02, strNValue02, strRetValue02
strRetValNew02 = Mid(strRetValue02, 5)
objReg.GetStringValue HKCR, strKeyPath03, strNValue09, strRetValue09
strRetValue10 = strNewRTMSource & strRetValue09
objReg.GetStringValue HKLM, strInstallSource, strNValue03, strRetValNew03
objReg.GetStringValue HKLM, strInstallSource, strNValue04, strRetValNew04
objReg.GetStringValue HKLM, strInstallSource, strNValue05, strRetValNew05
objReg.GetStringValue HKLM, strInstallSource, strNValue06, strRetValNew06
objReg.GetStringValue HKLM, strInstallSource, strNValue07, strRetValNew07
objReg.GetStringValue HKLM, strInstallSource, strNValue10, strRetValNew10
objReg.GetStringValue HKLM, strInstallSource, strNValue12, strRetValNew12
objReg.GetStringValue HKLM, strInstallSource, strNValue13, strRetValNew13
objReg.GetStringValue HKLM, strInstallSource2, strNValue11, strRetValNew11
 
' Pull the Product Code from the Uninstall String
strProdCode = strRetValNew07
  ProdCodeLen = Len(strProdCode)
  ProdCodeLen = ProdCodeLen - 14
strRetValNew08 = Right(strProdCode, ProdCodeLen)
 
' Pull out path from LastUsedSource
strGetRealPath = strRetValue02
  GetRealPath = Len(strRetValue02)
strRealPath = Mid(strRetValue02, 5, GetRealPath)
 
' Identifie the string in the ProductName
If 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 String
strMoreInfoURL = strRetValue13a
  MoreInfoURLLen = Len(strMoreInfoURL)
strRetValue13b = Right(strMoreInfoURL, 42)
 
' Pull the URL from the LastUsedPath String
strLastUsedPath = strRetValue15a
  LastUsedPathLen = Len(strLastUsedPath)
  'LastUsedPathLen = LastUsedPathLen - 15
strRetValue15c = 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
 
 
Next
txtFile.Close
Set txtFile = Nothing
Set fso = Nothing

Propriedades

Artigo: 969052 - Última revisão: 22 de outubro de 2013 - Revisão: 12.0
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbtshoot kbexpertiseinter kbprb kbsurveynew kbmt KB969052 KbMtpt
Tradução automática
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

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com