При выполнении playbook из Ansible tower результат powershell не такой, как ожидалось.
playbook,
- name: Execute powershell.
win_shell: powershell.exe -file C:\Users\abcdef\Desktop\user_test.ps1 {{ user }}
register: res
- debug: msg="{{ res }}"
сценарий powershell,
$user=$args[0]
Try {
Get-CdmUserProfile -User $user
}
Catch {
Write-Host "The user - $user are not exist."
return
}
Это странно, когда я запускаю powershell с Windows самого сервера, например,
powershell.exe -file C: \ Users \ abcdef \ Desktop \ user_test.ps1 abcdef@ab.cd.com
это успешно с выходным успехом, так как указывают информацию о пользователе,
Однако, если выполнить с помощью Ansible, он выводится непосредственно как
Пользователь - abcdef@ab.cd.com не существует.
Кажется, он не может передать аргумент {{user}}, я также пытаюсь использовать "win_command", но результат тот же.
Нужна помощь, поскольку она уже застряла на несколько дней.
РЕДАКТИРОВАТЬ :: Я пытаюсь изменить книгу воспроизведения для непосредственного запуска команды,
- name: Execute Unix Login request script.
win_shell: Get-CdmUserProfile -User abcdef@ab.cd.com
register: res
- debug: msg="{{ res }}"
Тем не менее, по-прежнему получена ошибка, как показано ниже Ansible выход,
fatal: [server_name.ab.cd.com]: FAILED! => {
"changed": true,
"cmd": "Get-CdmUserProfile -User abcdef@ab.cd.com",
"delta": "0:00:01.107571",
"end": "2020-04-12 07:36:43.844571",
"msg": "non-zero return code",
"rc": 1,
"start": "2020-04-12 07:36:42.736999",
"stderr": "Get-CdmUserProfile :
An operations error occurred.\r\n
At line:1 char:65\r\n+ ... Text.UTF8Encoding $false;
Get-CdmUserProfile -User abcdef@ab.cd.com\r\n+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n
+ CategoryInfo : NotSpecified: (:)
[Get-CdmUserProfile], Director \r\n yServicesCOMException\r\n + FullyQualifiedErrorId :
System.DirectoryServices.DirectoryServicesCOMExc \r\n
eption,Centrify.DirectControl.PowerShell.Commands.GetCdmUserProfile",
"stderr_lines": [
"Get-CdmUserProfile : An operations error occurred.", …****