web-dev-qa-db-fra.com

Playbook Ansible, quelle est la syntaxe appropriée pour exécuter un script PowerShell avec un utilisateur (domaine) spécifique, en mode élevé?

exécuter Ansible 2.4.2 dans un environnement hors ligne, en utilisant des kerberos pour s'authentifier,

Via un playbook ansible, quelle est la syntaxe appropriée pour exécuter un script PowerShell avec un utilisateur (domaine) spécifique: DOMAIN\someuser, en mode élevé?

Par mode élevé, je veux dire que dans l'interface Windows, j'exécute le script en me connectant en tant que DOMAIN\someuser, puis en cliquant avec le bouton droit sur un raccourci d'invite cmd ou powershell, en choisissant "exécuter en tant qu'administrateur". Bien sûr, cela ne signifie pas que je peux exécuter le script avec l'utilisateur local: "administrateur".

Ce que je veux exécuter, c'est:

powershell.exe -executionpolicy bypass -noninteractive -nologo -file "myscript.ps1" 

Ce que j'ai essayé dans un devient.yml:

- name: sigh
  win_command: powershell.exe -executionpolicy bypass -noninteractive -nologo -file "myscript.ps1" 
  become: yes
  become_user: DOMAIN\someuser
  become_password: someuserpassword
  become_method: runas

Le script s'exécute, avec des erreurs qui s'y rapportent ne s'exécutant pas en élévation. J'ai essayé la même chose avec win_Shell et raw. Essayé sans devenir_utilisateur et devenir_mot de passe (le yml fonctionne avec l'utilisateur et le mot de passe [email protected], donc je ne sais pas vraiment si c'est nécessaire pour devenir).

Je traîne à travers cela et ne trouve aucune référence à une solution via devenir: http://docs.ansible.com/ansible/latest/become.html

Des idées?

4
Nahshon paz

J'ai fait ce qui suit pour le faire fonctionner dans mon livre de jeu:

- name: Run ps1 script in privileged mode
  hosts: "{{ my_hosts }}"
  become_method: runas

  vars:
    ansible_become_password: mysupersecretpasswrod

  tasks:
    - win_Shell: '.\myscript.ps1'
      become: yes
      become_user: Administrator
4
Christina A

J'ai déjà utilisé PsExec pour exécuter des tâches en tant qu'utilisateur de domaine Windows spécifique pour les installations de logiciels nécessitant le chargement du profil. Vous pouvez également l'utiliser pour emprunter l'identité d'un utilisateur élevé sur le système distant pour exécuter un script PowerShell.

Ce n'est pas mon premier choix, mais j'ai également eu des problèmes pour travailler sur les hôtes Windows.

- name: Copy PsExec
  win_copy:
    src: "files/PsExec.exe"
    dest: "c:\\temp\\psexec.exe"
    force: no

- name: Run powershell as a specific domain user
  win_psexec:
    command: "powershell.exe -executionpolicy bypass -noninteractive -nologo -file 'myscript.ps1'"
    executable: C:\temp\psexec.exe
    elevated: yes
    nobanner: yes
    username: "{{ dom_username }}"
    password: "{{ dev_password }}"
    interactive: yes
3
Tj Kellie