使用Powershell将电子邮件地址添加到AD安全组

时间:2018-06-22 17:50:14

标签: powershell active-directory

我正在尝试运行下面的powershell脚本,但是我得到了:

“ Set-ADGroup:找不到与参数名称'mail'相匹配的参数。

脚本会导入两列的csv(左列为组,右列为电子邮件地址),然后遍历列表,设置列表中每个对象的邮件属性

Import-CSV -path 'D:\Scripts\AD-AddEmailtoSecGroups\Groups&Emails_Test.csv' | ForEach {get-adgroup -id $_.group | set-adgroup -mail $_.Mail}

2 个答案:

答案 0 :(得分:2)

尝试一下。

Import-CSV -path 'D:\Scripts\AD-AddEmailtoSecGroups\Groups&Emails_Test.csv' | ForEach-Object {Set-ADGroup -Identity $_.group -Replace @{mail="$_.email"}}

编辑: 我想我假设您的csv中的email属性将称为“ email”。我只是看到您使用的是“邮件”。这么小的变化:

Import-CSV -path 'D:\Scripts\AD-AddEmailtoSecGroups\Groups&Emails_Test.csv' | ForEach-Object {Set-ADGroup -Identity $_.group -Replace @{mail="$($_.mail)"}}

答案 1 :(得分:1)

您需要使用-Replace参数来访问mail属性,因为它在Set-ADGroup中没有自己的参数。将哈希传递到-Replace参数时,您还只需要确保要正确访问传递给命令的对象中的“ mail”属性即可。

这应该可以解决问题:

Import-CSV -path 'D:\Scripts\AD-AddEmailtoSecGroups\Groups&Emails_Test.csv' |
ForEach-Object {Set-ADGroup -Identity $_.group -Replace @{mail="$($_.mail)"}}