windows 如何将Ansible变量传递给PowerShell脚本?

xurqigkl  于 2023-02-25  发布在  Windows
关注(0)|答案(1)|浏览(214)

这是我的PS脚本

#Map the client cert to the User
param
(
    # Parameter help description
    [Parameter(Mandatory=$True,Position=1)]
    [string]$username
)

New-Item -Path WSMan:\localhost\ClientCertificate `
    -Subject "$username@localhost" `
    -URI * `
    -Issuer D2D38EE665F0AE3C106367EFB `
    -Credential H123Ansible `
    -Force

这是我的任务

- name: PS script to configure WinRM Certificate Authentication
  ansible.windows.win_shell: "C:\\Temp\\cert_based_winrm_auth.ps1 -username {{ username }}"

我尝试了不同的方法运行脚本(“,”,args,花括号,没有花括号,$username,=$username),但没有工作。我搜索了很多找到一个解决方案,匹配我的问题。但没有运气。
有谁能告诉我我做错了什么,怎么改正吗?有没有别的方法可以做到?比如在ansible中运行PS脚本而不是ps文件。
高级谢谢你的帮助.

a8jjtwal

a8jjtwal1#

尝试改用the win_powershell module

- name: PS script to configure WinRM Certificate Authentication
  ansible.windows.win_powershell:
    script: |
      [CmdletBinding()]
      param (
          [String]
          $Username
      )

      C:\Temp\cert_based_winrm_auth.ps1 -username $Username
    parameters:
      Username: {{ username }}

相关问题