Ansible 剧本,在提升模式下 运行 具有特定(域)用户的 powershell 脚本的正确语法是什么?
Ansible playbook, what is the proper syntax to run a powershell script with a specific (domain) user, in an elevated mode?
运行在离线环境下使用Ansible 2.4.2,使用kerberos进行认证,
通过 ansible 剧本,运行 具有特定(域)用户的 powershell 脚本的正确语法是什么:DOMAIN\someuser,在提升模式下?
通过提升模式,我的意思是在 Windows 界面中,我将 运行 脚本以 DOMAIN\someuser 身份登录,然后右键单击 cmd 或 powershell 提示符快捷方式, 选择 "run as administrator"。
这当然并不意味着我可以 运行 本地用户的脚本:"administrator".
我想要运行的是:
powershell.exe -executionpolicy bypass -noninteractive -nologo -file "myscript.ps1"
我在 become.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
脚本 运行s,与它相关的错误未 运行ning 在海拔高度。
对 win_shell 和 raw 进行了相同的尝试。在没有 become_user 和 become_password 的情况下进行了尝试(带有 someuser@DOMAIN.local 用户和密码的 yml 运行s 所以我真的不知道它是否需要成为)。
我正在拖拽这个并没有找到通过成为解决方案的参考:
http://docs.ansible.com/ansible/latest/become.html
有什么想法吗?
我之前使用 PsExec 作为特定 windows 域用户执行 运行 任务,用于需要加载配置文件的软件安装。您还可以使用它来模拟远程系统上的提升用户 运行 一个 powershell 脚本。
这不是我的第一选择,但我在 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
为了让它在我的剧本中发挥作用,我做了以下工作:
- 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
运行在离线环境下使用Ansible 2.4.2,使用kerberos进行认证,
通过 ansible 剧本,运行 具有特定(域)用户的 powershell 脚本的正确语法是什么:DOMAIN\someuser,在提升模式下?
通过提升模式,我的意思是在 Windows 界面中,我将 运行 脚本以 DOMAIN\someuser 身份登录,然后右键单击 cmd 或 powershell 提示符快捷方式, 选择 "run as administrator"。 这当然并不意味着我可以 运行 本地用户的脚本:"administrator".
我想要运行的是:
powershell.exe -executionpolicy bypass -noninteractive -nologo -file "myscript.ps1"
我在 become.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
脚本 运行s,与它相关的错误未 运行ning 在海拔高度。 对 win_shell 和 raw 进行了相同的尝试。在没有 become_user 和 become_password 的情况下进行了尝试(带有 someuser@DOMAIN.local 用户和密码的 yml 运行s 所以我真的不知道它是否需要成为)。
我正在拖拽这个并没有找到通过成为解决方案的参考: http://docs.ansible.com/ansible/latest/become.html
有什么想法吗?
我之前使用 PsExec 作为特定 windows 域用户执行 运行 任务,用于需要加载配置文件的软件安装。您还可以使用它来模拟远程系统上的提升用户 运行 一个 powershell 脚本。
这不是我的第一选择,但我在 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
为了让它在我的剧本中发挥作用,我做了以下工作:
- 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