Office LTSC Standard 2021: como resolver o erro 0‑2048(0) do ODT na instalação

Instalações do Office LTSC Standard 2021 que antes funcionavam com o Office Deployment Tool passaram a falhar com o erro 0‑2048(0). Veja por que isso acontece e como resolver definitivamente com CMD elevado, caminho correto e scripts à prova de UAC.

Índice

Visão geral e sintomas

Em diversos ambientes (organizações sem fins lucrativos, escolas, pequenas empresas e integradores), instalações do Office LTSC Standard 2021 que por anos rodaram sem problemas via Office Deployment Tool (ODT) começaram a quebrar no momento do /configure com a mensagem “não foi possível encontrar o caminho do arquivo” e o erro 0‑2048(0). Em alguns casos, ao tentar voltar para um build anterior do ODT surgiu o erro 2052(0). Os relatos têm pontos em comum:

  • Máquinas novas, recém‑resetadas, sem Office antigo instalado.
  • ODT e configuration.xml preparados como sempre, mas o comando falha.
  • Duplo clique em um .BAT (sem elevação) tende a falhar; o mesmo comando no Prompt de Comando executado como administrador tende a funcionar.
  • Há menções a diferenças entre builds do ODT baixados em lugares distintos; ainda assim, a correção que mais resolve é garantir elevação e diretório de trabalho correto.

Diagnóstico rápido

Antes de qualquer ajuste, responda a estas perguntas:

  1. Você está executando o comando em uma janela de CMD elevada (Executar como administrador)?
  2. setup.exe e configuration.xml estão na mesma pasta e o comando está sendo rodado de dentro dessa pasta?
  3. O nome do XML está correto (por exemplo, configuration.xml, sem acentos, sem variações como configuracion.xml, configuração.xml ou Configuration.XML)?
  4. Se há espaços no caminho, você colocou o caminho entre aspas?

Se alguma resposta for “não”, é muito provável que a correção abaixo resolva.

Solução principal confirmada

Execute o ODT a partir de um Prompt de Comando com privilégios de administrador, já dentro da pasta onde estão setup.exe e o configuration.xml:

setup.exe /configure configuration.xml

Por que isso funciona? Quando você eleva via UAC, o processo pode iniciar em outro diretório de trabalho. Se o seu script foi aberto com duplo clique, o ODT perde a referência do XML e retorna exatamente “caminho não encontrado” com o código 0‑2048(0). Rodando dentro da pasta correta (ou usando caminhos absolutos) elimina a ambiguidade.

Variações que também funcionam

Usar caminhos absolutos (entre aspas):

"C:\Pacotes\ODT\setup.exe" /configure "C:\Pacotes\ODT\configuration.xml"

Tornar o .BAT imune a UAC/diretório com pushd:

@echo off
rem Garante que o diretório de trabalho é o do próprio script
pushd "%~dp0"
start /wait "" "%~dp0setup.exe" /configure "%~dp0configuration.xml"
popd

PowerShell com elevação e diretório controlado:

Start-Process -FilePath ".\setup.exe" -ArgumentList "/configure configuration.xml" -Wait -Verb RunAs

Se quiser PowerShell com caminhos absolutos:

$odt = "C:\ODT\setup.exe"
$xml = "C:\ODT\configuration.xml"
Start-Process -FilePath $odt -ArgumentList "/configure `"$xml`"" -Wait -Verb RunAs

Passo a passo recomendado de ponta a ponta

  1. Limpeza: reinicie a máquina; desinstale qualquer Office antigo (Painel de Controle > Programas); encerre processos ClickToRun no Gerenciador de Tarefas.
  2. Crie uma pasta única, por exemplo C:\ODT\.
  3. Coloque nessa pasta: o setup.exe do ODT e o seu configuration.xml gerado no Office Customization Tool.
  4. Opcional, mas recomendado: faça o pré-download do conteúdo para reduzir variáveis de rede: setup.exe /download configuration.xml
  5. Instale a partir de um CMD elevado, já dentro de C:\ODT\: setup.exe /configure configuration.xml
  6. Se for usar script, prefira o padrão com pushd "%~dp0" (visto acima) ou caminhos absolutos entre aspas.
  7. Confirme o nome do XML (sem localizações/acentos) e use aspas se houver espaços no caminho.

Exemplos de configuration.xml para LTSC Standard 2021

Use o Product ID coerente com a sua licença (para LTSC Standard 2021 volume, o mais comum é Standard2021Volume). Ajuste o idioma conforme necessário.

Exemplo básico online

<Configuration>
  <Add OfficeClientEdition="64" Channel="PerpetualVL2021">
    <Product ID="Standard2021Volume">
      <Language ID="pt-BR" />
    </Product>
  </Add>
  <Display Level="None" AcceptEULA="TRUE" />
  <Property Name="AUTOACTIVATE" Value="1" />
  <RemoveMSI />
</Configuration>

Exemplo com cache offline

<Configuration>
  <Add OfficeClientEdition="64" Channel="PerpetualVL2021" SourcePath="C:\ODT\Source" >
    <Product ID="Standard2021Volume">
      <Language ID="pt-PT" />
      <Language ID="pt-BR" />
    </Product>
  </Add>
  <Display Level="None" AcceptEULA="TRUE" />
  <Property Name="AUTOACTIVATE" Value="1" />
  <RemoveMSI />
</Configuration>

Depois, faça:

setup.exe /download configuration.xml
setup.exe /configure configuration.xml

Principais causas por trás do 0‑2048(0)

  • Diretório de trabalho incorreto: quando o processo é elevado pelo UAC, o script pode abrir em outra pasta, e o ODT não encontra o XML.
  • Permissões insuficientes: a instalação precisa de CMD/PowerShell elevados.
  • Build do ODT com regressão pontual: trocar de build pode ajudar se houver um bug, mas na maioria dos êxitos relatados o que resolveu foi elevação + diretório correto.
  • Nome do XML inconsistente: variações localizadas como configuracion.xml (ES) em vez de configuration.xml quebram o comando.

Tabela de “sintoma x causa provável x correção”

SintomaCausa provávelCorreção prática
Erro 0‑2048(0): “não foi possível encontrar o caminho do arquivo”ODT não achou o configuration.xml por estar em outro diretórioAbrir CMD elevado dentro da pasta do ODT e rodar setup.exe /configure configuration.xml; ou usar caminhos absolutos entre aspas
Erro 2052(0) ao tentar build antigoRegressão pontual ou build desatualizadoTestar outro setup.exe do ODT, mantendo elevação e diretório correto
Duplo clique no .BAT falha; CMD elevado funcionaUAC muda o diretório de trabalhoModificar o script para usar pushd "%~dp0" + start /wait e caminhos explícitos
Instalação falha apenas em contas padrãoPermissão insuficiente para escrever em diretórios de sistemaExecutar como Administrador; considerar política de implantação com credenciais elevadas

Script bulletproof para .BAT corporativo

Este modelo é “pegar e usar” em pacotes, pendrives ou compartilhamentos. Ele cobre UAC, diretório e espaços no caminho:

@echo off
setlocal enableextensions enabledelayedexpansion

rem --- elevação: se não estiver admin, relança ---
\>nul 2>&1 net session
if not %errorlevel%==0 (
echo Solicitando elevacao de privilegios...
powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
exit /b
)

rem --- trava o diretório no local do script ---
pushd "%~dp0"

rem --- valida arquivos ---
if not exist "%~dp0setup.exe" (
echo ERRO: setup.exe nao encontrado em "%~dp0"
popd & exit /b 1
)
if not exist "%~dp0configuration.xml" (
echo ERRO: configuration.xml nao encontrado em "%~dp0"
popd & exit /b 1
)

rem --- opcional: pre-download do conteudo ---
echo Baixando pacotes (se necessario)...
start /wait "" "%~dp0setup.exe" /download "%~dp0configuration.xml"
if not %errorlevel%==0 (
echo ATENCAO: /download retornou codigo %errorlevel%. Prosseguindo com /configure...
)

rem --- instalacao ---
echo Iniciando instalacao...
start /wait "" "%~dp0setup.exe" /configure "%~dp0configuration.xml"
set RC=%errorlevel%

popd
exit /b %RC% 

PowerShell para pipelines e RMM

Se a sua ferramenta de gerenciamento remoto aceita apenas PowerShell, use:

param(
  [string]$Base = "C:\ODT",
  [string]$Xml = "configuration.xml"
)

\$exe = Join-Path \$Base "setup.exe"
\$cfg = Join-Path \$Base \$Xml

if (-not (Test-Path \$exe)) { throw "setup.exe nao encontrado em \$Base" }
if (-not (Test-Path \$cfg)) { throw "XML nao encontrado: \$cfg" }

Start-Process -FilePath \$exe -ArgumentList "/download `"$cfg`"" -Wait -Verb RunAs
Start-Process -FilePath \$exe -ArgumentList "/configure `"$cfg`"" -Wait -Verb RunAs 

Leitura de logs para confirmação

Se ainda falhar, colete evidências nos seguintes locais:

  • %ProgramData%\Microsoft\ClickToRun\Log\
  • %temp%\Office\ (arquivos *.log)

Nos logs, procure termos como path not found, cannot find file, configuration xml. Essas mensagens reforçam que a causa é diretório/caminho e não conteúdo do pacote.

Ajustes finos do configuration.xml

  • Product ID correto: para LTSC Standard, o padrão de volume é Standard2021Volume.
  • Canal: PerpetualVL2021.
  • Idiomas: pt-BR e/ou pt-PT conforme a base instalada.
  • SourcePath: uso recomendado quando fizer /download para cache local ou em rede.
  • RemoveMSI: evita conflito com versões MSI antigas.
  • AUTOACTIVATE: útil em cenários KMS/MAK, conforme a sua política de licenciamento.

Boas práticas de implantação

  • Padronize a pasta (ex.: C:\ODT\) e mantenha nela setup.exe + configuration.xml.
  • Sempre cite caminhos entre aspas quando houver espaços.
  • Prefira CMD/PowerShell elevados e valide a elevação no início do script.
  • Faça /download antecipado em redes com proxy/latência, para reduzir variáveis.
  • Logue o resultado redirecionando a saída para arquivo em cada execução.
  • Automatize com robustez: em RMM/Intune/MECM, aponte o Working Directory para a pasta do pacote ou utilize caminhos absolutos.

Alternativas ao ODT e expectativas realistas

Para o Office LTSC 2021, o método oficial continua sendo o Click‑to‑Run via ODT (mesmo quando usado por Intune ou MECM nos bastidores). Quando alguém pede “um método alternativo ao ODT”, o que de fato resolve é ajustar a forma de invocá‑lo (elevação, diretório, caminhos absolutos e cache offline). Trocar de build do ODT é uma tentativa válida se houver suspeita de regressão, mas não substitui a correção de working directory.

Fluxo de decisão extremamente prático

  1. Abra CMD como administrador.
  2. Vá à pasta do ODT: cd /d C:\ODT.
  3. Rode: setup.exe /configure configuration.xml.
  4. Falhou? Rode com caminhos absolutos entre aspas.
  5. Falhou? Ajuste o nome do XML para configuration.xml.
  6. Falhou? Faça /download para cache local e repita.
  7. Falhou? Teste outro setup.exe do ODT mantendo os passos anteriores.
  8. Ainda falhou? Abra os logs do ClickToRun e procure por “path not found”.

Exemplos de mensagens e como reagir

Mensagem típicaInterpretaçãoAção imediata
“Não foi possível encontrar o caminho do arquivo”ODT não localizou o XML ou a mídiaRodar no diretório correto; usar caminhos absolutos
“Another instance of setup is running”Conflito com processo ClickToRun anteriorFechar processo, reiniciar e tentar novamente
“Package files not found”Cache offline inválido ou ausenteRefazer /download; checar SourcePath

Casos de campo e lições aprendidas

  • CMD elevado x duplo clique: diversos casos funcionaram no primeiro quando falhavam no segundo.
  • Builds diferentes do ODT: pode haver inconsistências entre compilações; porém a maior parte dos êxitos veio de corrigir elevação e diretório.
  • Localização do nome do XML: um único caractere diferente (configuracion.xml vs. configuration.xml) foi suficiente para reproduzir o erro.

Checklist final antes de abrir um chamado

  • Confirme CMD/PowerShell com Run as administrator.
  • Garanta que setup.exe e configuration.xml estão na mesma pasta e que você está dentro dessa pasta.
  • Use aspas em caminhos com espaços.
  • Valide o Product ID e o canal (Standard2021Volume, PerpetualVL2021 para LTSC).
  • Se possível, rode setup.exe /download configuration.xml antes de /configure.
  • Revise logs em %ProgramData%\Microsoft\ClickToRun\Log\ e %temp%\Office\.

Perguntas frequentes

Posso instalar sem CMD elevado?

Não é recomendado. A instalação escreve em áreas protegidas do sistema. Sem elevação, você terá falhas intermitentes e códigos de erro semelhantes.

Vou precisar do ODT para sempre?

Para LTSC 2021, sim — o mecanismo é Click‑to‑Run via ODT. Mesmo soluções de gerenciamento (Intune/MECM) usam o ODT por baixo dos panos.

Qual a diferença entre /download e /configure?

/download obtém a mídia e prepara o cache; /configure instala conforme o XML. Em redes com proxy ou links instáveis, /download prévio é uma excelente prática.

Meu XML está certo, mas ainda falha com 0‑2048(0). E agora?

Quase sempre é diretório/permissão. Garanta CMD elevado e caminhos absolutos (ou o padrão pushd "%~dp0"). Se persistir, troque o executável do ODT e repita o procedimento.

Resumo executivo

Em uma linha: execute o /configure em um Prompt de Comando “Executar como administrador”, já dentro da pasta que contém setup.exe e configuration.xml (ou use caminhos absolutos/um .BAT com pushd "%~dp0"). Isso resolve o erro 0‑2048(0) na esmagadora maioria dos casos.

Modelo de pacote “pronto para copiar”

Estruture a pasta C:\ODT\ assim:

C:\ODT\
├─ setup.exe
├─ configuration.xml
└─ install.bat

Conteúdo sugerido do install.bat (com logging):

@echo off
set LOG=C:\ODT\install-%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%-%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.log
set LOG=%LOG: =0%
call "%~f0" :main ^> "%LOG%" 2^>&1
exit /b %errorlevel%

\:main
rem --- veja a versao bulletproof descrita no artigo ---
\>nul 2>&1 net session || (
powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
exit /b
)
pushd "%~dp0"
start /wait "" "%CD%\setup.exe" /download "%CD%\configuration.xml"
start /wait "" "%CD%\setup.exe" /configure "%CD%\configuration.xml"
popd 

Concluindo

O erro 0‑2048(0) geralmente não é um problema de conteúdo do Office, mas de como o ODT é chamado. Ao padronizar a execução em janela elevada, controlar o diretório de trabalho e preferir caminhos absolutos (ou scripts com pushd "%~dp0"), você elimina a causa raiz e devolve previsibilidade à sua implantação LTSC.

Índice