Windows中具有特权的特权提升

时间:2019-02-15 15:03:33

标签: windows ansible

我正在尝试以管理员身份在Ansible中启动一些命令。 根据{{​​3}}:

  

您可以与成为与ansible_user相同的用户使用成为对象来绕过这些限制,并运行WinRM会话中通常无法访问的命令。

但这对我不起作用。每当我尝试运行以下剧本时:

- hosts: jenkins-win
  gather_facts: no
  tasks:

    - win_whoami:
      become: yes
      become_user: foo

我得到Failed to become user foo: Exception calling \"RunAsUser\" with \"7\" argument(s): \"LogonUser failed (The user name or password is incorrect, Win32ErrorCode 1326)\"

用户fooAdministrators组的成员。如果单击带有人民币的图标并选择“以管理员身份运行”,则无需输入密码即可得到UAC提示。如果我禁用UAC,则该命令仅以管理员身份运行。

如果我分别将ansible_become_useransible_become_password分别设置为foopassword,则一切正常。我想避免设置ansible_become_password,因为我已经通过WinRM登录了。

我正在使用Ansible 2.7.6,带有CredSSP和Windows Server 2016的WinRM。

2 个答案:

答案 0 :(得分:0)

尝试添加

become_method=runas

ansible.cfg文件。

答案 1 :(得分:0)

问题似乎已经在ansible mailing list上回答了

  

要回答有关是否要求输入密码的问题。 runas成为方法是Ansible对runas可执行文件https://technet.microsoft.com/en-us/library/bb490994.aspx的实现,其中需要用户名和密码。内部Win32 API要求同时设置用户名和密码,我们不能绕过它。最后,您确实需要指定用于普通帐户的密码,但是如果您在devel分支上,则还有另一种选择。您可以通过将SYSTEM设置为begin_user来成为SYSTEM帐户,并且不需要密码。 SYSTEM帐户就像Windows上的root,可以执行几乎所有操作。