我为每个用户输入CSV格式的组列表,并尝试使用PowerShell代码创建用户。
下面是PowerShell代码:
- name: Change group for AD users
ansible.windows.win_powershell:
script: |
[CmdletBinding()]
param (
[array]
$datalist
)
$output = foreach ($user in $datalist) {
$name = $user.SamAccountName
$groups = $user.Groups
$users = Get-ADUser -Filter "SamAccountName -eq '$name'"
Get-ADUser -Filter "SamAccountName -eq '$name'" -Properties MemberOf | ForEach-Object {$_.MemberOf | Remove-ADGroupMember -Members $users -Confirm:$false}
Add-ADGroupMember -Identity $groups -Members $users
}
parameters:
datalist: "{{ hostvars.localhost.list }}"
我最终得到这个错误:
"message": "Cannot convert 'System.Object[]' to the type 'Microsoft.ActiveDirectory.Management.ADGroup' required by parameter 'Identity'. Specified method is not supported."
还尝试了'$groups'
:
"message": "Cannot find an object with identity: '$groups' under: 'DC=adexample,DC=local'.",
和"$groups"
:
"message": "Cannot find an object with identity: 'CN=GroupA,OU=Groups,DC=adexample,DC=local CN=Test Group,OU=Groups,DC=adexample,DC=local' under: 'DC=adexample,DC=local'.",
下面是我如何将组列表输入到CSV文件中:
| 组别|
| - ------|
| CN =组A,OU =组,DC =示例,DC =本地;CN =测试组,OU =组,DC =示例,DC =本地|
| CN =组A,OU =组,DC =示例,DC =本地;CN =测试组,OU =组,DC =示例,DC =本地|
编写$groups的正确方法是什么,这样我的组列表才能正确输出?
1条答案
按热度按时间ego6inou1#
CSV示例
示例帐户名、给定名称、姓氏、密码、电子邮件、组用户1、chand、komara、密码1、用户1@example.com、组1、组2用户2、bhuvan、unnava、密码2、用户2@example.com、组2、组3
对于$users数组中的每个用户,代码使用New-ADUser cmdlet和指定的SamAccountName、GivenName、Surname、DisplayName、EmailAddress和帐户密码创建一个新的Active Directory用户。然后使用Add-ADGroupMember cmdlet将该用户添加到指定的组。