Pular para o conteúdo principal

Pré-instalar o XFA com qualquer outro sistema

O XFA não está preso a um sistema de gestão específico. Qualquer coisa que consiga instalar um pacote e passar uma propriedade MSI ou executar um comando como o utilizador com sessão iniciada consegue distribuí-lo. A pré-instalação é uma funcionalidade Enterprise.

Windows

Passe o token de inscrição como uma propriedade MSI:

msiexec /i XFA.msi /qn ENROLLMENT_TOKEN=<your-enrollment-token>

ENROLLMENT_TOKEN é uma propriedade pública, por isso funciona a partir de qualquer ferramenta que execute msiexec e não altera a assinatura do instalador. Acrescente EMAIL=person@example.com apenas quando estiver a instalar num único dispositivo: define um só endereço, por isso numa distribuição em frota todos os dispositivos ficariam inscritos como essa pessoa. Numa frota, o XFA lê o endereço de cada dispositivo a partir do Active Directory. Instale para o utilizador com sessão iniciada; o XFA é uma aplicação por utilizador.

A instalação falha se a inscrição falhar. Através do msiexec, isso é um erro genérico do instalador e não o código do próprio XFA: a razão (2 para um token recusado, 3 quando não foi possível contactar o XFA) está em %TEMP%\xfa\xfa-enrollment.log. Instale primeiro e inscreva em separado (abaixo) para receber o código diretamente.

macOS

Instale o XFA.pkg para o utilizador com sessão iniciada e forneça o token de uma de duas formas:

  • um perfil de configuração com o domínio de preferências com.xfa.desktop e a chave EnrollmentToken; ou
  • o ficheiro /Library/Application Support/XFA/enrollment-token, que contém apenas o token. O XFA só o lê quando o dono é o root e mais ninguém lhe pode escrever (modo 644), que é o que uma política a correr como root escreve de qualquer forma. Este ficheiro decide a que organização o Mac se junta, por isso um ficheiro que falhe essas verificações é ignorado.

O XFA lê o que estiver presente quando arranca e inscreve o utilizador com sessão iniciada. O perfil tem precedência.

Se a inscrição falhar, a razão é escrita em /tmp/xfa/xfa-enrollment.log no Mac.

Instalar primeiro, inscrever em separado

Se a sua ferramenta instalar pacotes e executar comandos em passos separados, inscreva com:

xfa enroll --token <your-enrollment-token>

Execute-o como o utilizador com sessão iniciada, porque as credenciais ficam guardadas no porta-chaves ou no Credential Manager desse utilizador. Acrescente --email <address> quando o endereço da própria conta não for o correto.

Executá-lo outra vez é seguro e não custa nenhum pedido: o XFA reconhece o token e verifica a afiliação localmente.

O xfa está em %LOCALAPPDATA%\XFA\xfa-backend.exe no Windows e em /Applications/XFA.app/Contents/MacOS/xfa no macOS.

Espere pelo XFA no Windows

O XFA é uma aplicação com janela, por isso não aparece nenhuma linha de comandos no ecrã do utilizador enquanto trabalha. Por isso, uma shell não espera por ele, nunca recebe o seu código de saída e não tem consola para ler. Arranque-o e espere:

$run = Start-Process "$env:LOCALAPPDATA\XFA\xfa-backend.exe" -Wait -PassThru `
-ArgumentList 'enroll', '--token', '<your-enrollment-token>'
$run.ExitCode

Executá-lo diretamente devolve o controlo de imediato, sem saída e sem código de saída, o que se lê como sucesso, aconteça o que acontecer. Tudo o que dependa do resultado (um passo de distribuição, uma regra de deteção, uma verificação de conformidade) tem de esperar pelo processo.

A razão de uma falha é escrita em %TEMP%\xfa\xfa-enrollment.log, com o comando e a hora em cada execução. O token de inscrição nunca é escrito aí.

Verificar o resultado

xfa enrollment-status

O código de saída 0 significa que o dispositivo está inscrito, 10 significa que não está. Acrescente --organization-id <id> para perguntar por uma organização específica. Lê as credenciais locais do dispositivo, por isso não precisa de rede nem de direitos de administrador, o que o torna utilizável como verificação de deteção ou de conformidade.

No Windows, execute-o da mesma forma que acima. Uma regra de deteção que não espere pelo processo lê o código de saída que veio antes dele, e comunica uma conformidade que nunca mediu.