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.desktope a chaveEnrollmentToken; 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.