Vamos instalar novos softwares em praticamente todos os nossos computadores e estou tentando configurar um GPO para isso. Estamos executando um controlador de domínio do Windows Server 2008 R2 e todas as nossas máquinas são o Windows 7.
O GPO chama o script a seguir, que fica em um compartilhamento de rede em nosso servidor de arquivos. O próprio script chama um executável que fica em outro compartilhamento de rede em outro servidor. O executável irá imediatamente falhar com um erro 0x0000006
. O log de eventos apenas diz isto: Windows cannot access the file for one of the following reasons: there is a problem with the network connection, the disk that the file is stored on, or the storage drivers installed on this computer; or the disk is missing. Windows closed the program Setup.exe because of this error.
Aqui está o script (que está armazenado em \WIN2K8R2-F-01\Remote Applications
):
@ECHO OFF
IF DEFINED ProgramFiles(x86) (
ECHO DEBUG: 64-bit platform
SET _path="C:\Program Files (x86)\Canam"
) ELSE (
ECHO DEBUG: 32-bit platform
SET _path="C:\Program Files\Canam"
)
IF NOT EXIST %_path% (
ECHO DEBUG: Folder does not exist
PUSHD \WIN2K8R2-PSA-01\PSA Data\Client
START "" "Setup.exe" "/q"
POPD
) ELSE (
ECHO DEBUG: Folder exists
)
Executar o script manualmente como administrador também resulta no mesmo erro. Configurar um atalho com o mesmo destino e parâmetros funciona perfeitamente. Chamar manualmente o executável também funciona.
Não tenho certeza se é importante, mas o instalador é baseado em dotNETInstaller. Eu não sei qual versão embora.
Eu gostaria de receber sugestões para corrigir isso. Obrigado antecipadamente!
UPDATE
Eu duvido muito que isso seja importante, mas o compartilhamento de rede em que o script está hospedado é uma unidade compartilhada, enquanto a rede compartilha as referências de script para que o executável seja uma pasta compartilhada.
Além disso, os dois compartilhamentos têm Domain Computers
listado com acesso total para as guias de compartilhamento e segurança. E PUSHD
funciona sem envolver o caminho entre aspas.
UPDATE 2
Se eu abrir manualmente o CMD na máquina cliente e inserir PUSHD "\WIN2K8R2-PSA-01\PSA Data\Client"
, recebo o diretório montado como uma unidade corretamente. Se eu inserir START "" "Setup.exe" "/q"
, o instalador entra em ação exatamente como deveria e, na verdade, instala o aplicativo.
UPDATE 3
Enquanto fazia algumas depurações através das instruções ECHO
, comecei a enviar arquivos TXT
para a unidade C:\
na máquina cliente. Depois, chamei PUSHD
I ECHO
ed %CD%
para ver qual era o diretório atual. Acabou saindo como C:\Windows
não {?}:\Client
como deveria se montasse com sucesso o diretório remoto.
Eu acho que tem algo a ver com as mensagens que recebo no topo da tela que os caminhos UNC não são suportados, blah blah blah, mesmo que o resto do script realmente seja executado.
Ainda procurando sugestões para fazer isso funcionar.