我正在尝试从可访问的主服务器执行AD和Exchange命令,但是我收到以下错误消息。我可以在Windows服务器上本地成功执行这些命令
失败! => {“ changed”:true,“ cmd”:“ powershell.exe \”导入模块活动目录; get-aduser -Identity'testuser01'\“> aa.txt”,“ delta”:“ 0:00:01.796829 “,”结束“:” 2019-05-08 12:41:19.824130“,” msg“:”非零返回码“,” rc“:1,”开始“:” 2019-05-08 12:41 :18.027300“,” stderr“:” get-aduser:无法联系服务器。这可能是因为该服务器\ r \ n不存在,当前已关闭或没有Active Directory \ r \ nWeb服务运行。
失败! => {“已更改”:true,“ cmd”:“ Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;启用邮箱'testuser01'> c:/temp/aa.txt”,“ delta”:“ 0 :00:12.734039“,”结束“:” 2019-05-08 01:13:51.726514“,” msg“:”非零返回码“,” rc“:1,”开始“:” 2019-05- 08 01:13:38.992475“,” stderr“:” Active Directory操作失败。提供的\ r \ n'DEVAD \ admin'凭据无效。
代码部分:
- name: Mailbox Creation
win_shell: "import-module activedirectory;get-aduser -identity 'testuser01'"
- name: Mailbox Creation
win_shell: "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;enable-mailbox 'testuser01' > c:/temp/aa.txt"
答案 0 :(得分:0)
也许有人帮忙。
在使用kerberos时遇到同样的问题
ansible_winrm_transport: kerberos
需要启用授权证书,仅使用kerberos进行测试。
ansible_winrm_kerberos_delegation: yes
答案 1 :(得分:0)
无论出于何种原因,从远程 Exchange PowerShell 环境访问 Active Directory 都无法开箱即用,您必须生成一个新会话并在其中运行您的命令。
$PWord = ConvertTo-SecureString -String "{{ ansible_password }}" -AsPlainText -Force
$UserCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "{{ ansible_user }}", $PWord
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://{{ inventory_hostname }}/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -DisableNameChecking
后跟您的代码:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
...
并以:
Remove-PSSession $Session
相关文档: