问题描述
我是 rundeck 的新手,我正在努力让它在我的环境中工作。
- Rundeck 服务器在 Ubuntu 服务器上。
- 远程节点是 Windows Server。
所有 winrm https / kerberos 部分都已完成并且似乎可以正常工作。
我使用内联脚本步骤完成了一项工作,该步骤将 AD 中的数据导出到 csv 文件中。
问题是 rundeck 在脚本中删除了 @caracter 因此它不起作用。
源定义:
Get-ADUser -SearchBase "OU=...,DC=com" -Filter {mail -like "*@xxxx.com"} | select @{Name="NOM";Expression={$_.Surname}},@{Name="PRENOM";Expression={$_.Givenname}},@{Name="SERVICE";Expression={$_.wWWHomePage}},@{Name="BATIMENT";Expression={$_.wWWHomePage}},@{Name="EMAIL";Expression={$_.UserPrincipalName}},@{Name="TELEPHONE";Expression={$_.wWWHomePage}} | sort Nom | ConvertTo-Csv -NoTypeinformation | % { $_ -replace '"',""} | Out-File "D:\Data\OUT\Export.csv"
在远程节点上:
Get-ADUser -SearchBase "OU=...,DC=com" -Filter {mail -like "*@xxxx.com"} | select {Name="PRENOM";Expression={$_.Givenname}},{Name="BATIMENT";Expression={$_.wWWHomePage}},{Name="TELEPHONE";Expression={$_.wWWHomePage}} | sort Nom | ConvertTo-Csv -NoTypeinformation | % { $_ -replace '"',""} | Out-File "D:\Data\OUT\Export.csv"
如何防止这种情况发生?
谢谢。
解决方法
查看文档,您需要使用 @@
来转义 @
。查看 this 并找到“Escaping Replacement Token”部分。