Artigo: 889815 - Última revisão: sexta-feira, 13 de Abril de 2007 - Revisão: 4.2

É apresentada uma caixa de diálogo 'Abrir ficheiro - Aviso de segurança' quando tenta instalar silenciosamente uma correcção ou uma actualização utilizando um script do Visual Basic no Windows XP Service Pack 2

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sintomas

Quando tenta utilizar um script do Microsoft Visual Basic para instalar silenciosamente uma correcção ou uma actualização num computador baseado no Microsoft Windows XP Service Pack 2 (SP2), é apresentada uma caixa de diálogo Abrir ficheiro - Aviso de segurança.

Causa

Este problema poderá ocorrer quando executar um script do Visual Basic semelhante ao script de exemplo que se segue para instalar uma correcção ou uma actualização transferida da Internet.

Nota: o seguinte script de exemplo instala a actualização de segurança MS04-038.

Set oShell = CreateObject("WScript.Shell")

oShell.Run "c:\temp\ms04-038\WindowsXP-KB834707-x86-ptg /quiet /passive /norestart",0, True

Set oShell = Nothing


A actualização neste exemplo deverá ser instalada silenciosamente. No entanto, a caixa de diálogo Abrir ficheiro - Aviso de segurança é apresentada devido ao ficheiro de actualização ser transferido da Internet e, por este motivo, ser considerado perigoso.

Este comportamento é novo no Windows XP SP2 devido à adição dos serviços de execução de anexos (AES, Attachment Execution Services). Todos os programas que são executados utilizando a API ShellExecute() passam pelos AES. Os AES consideram que o ficheiro de actualização transferido vem da zona Internet. Assim, os AES apresentam a caixa de diálogo Abrir ficheiro - Aviso de segurança. Os AES examinam o ficheiro para verificar se este tem dados de informações sobre o ficheiro do tipo Zone.Identifier. Em seguida, os AES determinam qual a zona de origem do ficheiro e qual o nível de protecção a aplicar quando o ficheiro é executado.

Como contornar

Para contornar este problema, utilize um dos métodos seguintes.
Método 1: Alterar a variável de ambiente SEE_MASK_NOZONECHECKS

Altere temporariamente a variável de ambiente SEE_MASK_NOZONECHECKS para 1.

Nota: não a utilize como uma variável de ambiente do sistema permanentemente pois desactivará todas as verificações de zona.

Para alterar temporariamente a variável de ambiente SEE_MASK_NOZONECHECKS para que possa instalar silenciosamente uma correcção no Windows XP SP2, utilize o seguinte script de exemplo:
set oShell= CreateObject("Wscript.Shell")

set oEnv = oShell.Environment("PROCESS")

oEnv("SEE_MASK_NOZONECHECKS") = 1

oShell.Run "c:\ms04-038\WindowsXP-KB834707-x86-ptg /quiet /passive /norestart",0,True

oEnv.Remove("SEE_MASK_NOZONECHECKS")


Método 2: Utilizar um script de comandos

Pode utilizar um script de comandos em vez de um script do Visual Basic para instalar silenciosamente uma correcção ou uma actualização. Para tal, siga estes passos:
  1. Clique em Iniciar, clique em Executar, escreva cmd e clique em OK.
  2. Na linha de comandos, escreva as seguintes linhas e prima ENTER após cada uma:
    @echo off
    c:\ms04-038\WindowsXP-KB834707-x86-ptg /quiet /passive /norestart
  3. Após a conclusão da instalação, escreva exit e prima ENTER para fechar a linha de comandos.

Mais Informação

A Microsoft fornece exemplos de programação apenas a título informativo, sem garantia expressa ou implícita, incluindo, sem limitação, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que o utilizador conhece a linguagem de programação apresentada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador. Se dispõe de experiência de programação limitada, poderá pretender contactar um Microsoft Certified Partner ou a subsidiária local da Microsoft. Para obter mais informações sobre Microsoft Certified Partners, visite o seguinte Web site da Microsoft:
http://directory.microsoft.com/mprd/ (http://directory.microsoft.com/mprd/)
Para obter informações adicionais sobre as opções de suporte disponíveis na Microsoft, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;%5Bln%5D;cntactms)

A informação contida neste artigo aplica-se a:
  • Microsoft Windows XP Professional Service Pack 2 (SP2)
  • Microsoft Windows XP Home Edition Service Pack 2 (SP2)
Palavras-chave: 
kbtshoot kbprb KB889815