Atualmente estou escrevendo um manual sobre como desinstalar o Fusion Inventory Agent e, em seguida, implantar o agente GLPI 1.4 no Windows Server 2016-2022. Para todos os testes detalhados abaixo, uso minha conta de domínio que possui direitos de administrador em qualquer servidor.
(Eu executo o ansible core 2.12.10 + python 3.9.2 em um Debian 11 recém-atualizado)
O caminho do registro do desinstalador do agente Fusion Inventory está localizado em,
"C:\Program Files\FusionInventory-Agent\Uninstall.exe"
portanto, se eu executá-lo manualmente a partir do cmd/powershell com/S
a opção, recebo um pop-up Sim/Não do UAC e, portanto, desinstalo o agente se pressionar Sim.Agora, se eu clicar com o botão direito e executar como administrador em meu cmd/powershell.exe, posso iniciar
"C:\Program Files\FusionInventory-Agent\Uninstall.exe /S"
facilmente sem o UAC, é normal.
De uma perspectiva Ansible, se eu usar a seguinte tarefa:
tasks:
- name: uninstall fusion inventory agent through cmd
ansible.windows.win_command: '"C:\Program Files\FusionInventory-Agent\Uninstall.exe" "/S"'
become: yes
become_user: my_domain_account
become_method: runas
register: fusion_agent_out
É assim:
Using module file /usr/lib/python3/dist-packages/ansible_collections/ansible/windows/plugins/modules/win_command.ps1
Pipelining is enabled.
<frhd01inp009> ESTABLISH WINRM CONNECTION FOR USER: mydomain_account@my_domain on PORT 5985 TO my_server
EXEC (via pipeline wrapper)
changed: [server_name] => {
"changed": true,
"cmd": "\"C:\\Program Files\\FusionInventory-Agent\\Uninstall.exe\" \"/S\"",
"delta": "0:00:00.468425",
"end": "2022-11-24 16:32:12.065029",
"rc": 0,
"start": "2022-11-24 16:32:11.596603",
"stderr": "",
"stderr_lines": [],
"stdout": "",
"stdout_lines": []
}
MAS, na verdade, ele não desinstala nada, parece que o Ansible inicia o comando com sucesso, mas não captura o resultado.
Também tentei coisas diferentes para verificar se isso muda alguma coisa (iniciar o powershell.exe no cmd, do psexec ...), mas os resultados falham ou "alteraram", mas não inicia o unlock.exe como deveria.
Do ponto de vista do Ansible, como lidar com esse tipo de desinstalação?
Atenciosamente
Gael
Responder1
Finalmente acabei com uma solução diferente: acabei de criar uma tarefa agendada do Windows (ainda usando ansible) para iniciar o desinstalador e a opção necessária, depois especificar um nome de usuário, acionar e executá-lo uma vez.
É um bypass, mas funciona muito bem