使用 powershell 从 csv 文件添加多个安全组的电子邮件地址

Add the email address for multiple security groups from a csv file using powershell

我有一个 csv 文件,其中包含一组及其电子邮件地址的列表。我需要将这些电子邮件地址添加到 AD 中的邮件属性安全组(无交换)。在 csv 中,第一列标记为组 (###.testgroup),第二列标记为邮件 (###.testgroup@domain.com).

当我运行这个脚本

Import-CSV -path 'C:\Temp\test.csv' | ForEach-Object {Set-ADGroup -Identity $_.group -Replace @{mail="$_.mail"}}

它returns下面的邮件字段而不是实际的电子邮件地址。

@{group=###.testgroup;邮件=domain.com}.mail

你的问题是因为 "$.mail" 周围的双引号将你的对象 "$" 转换为字符串,然后在末尾乱加 ".mail"的字符串。 要绕过这种行为,(例如当你想使用 write-host 时)你可以使用这个:

"$($_.mail)"

或者在你的情况下,你可以简单地删除给出的引号:

Import-CSV -path 'C:\Temp\test.csv' | ForEach-Object {Set-ADGroup -Identity $_.group -Replace @{mail=$_.mail}}