【问题标题】:Import mailbox names from CSV and export distribution groups to another CSV从 CSV 导入邮箱名称并将通讯组导出到另一个 CSV
【发布时间】:2015-02-25 15:51:15
【问题描述】:

我需要从 CSV 文件中导入电子邮件列表,并且我必须为每个电子邮件列出它们所属的通讯组,但我无法让它工作。

我的 CSV 是一个依次排列的电子邮件地址列表:

mail1
mail2
mail3

我设法通过手动输入名称使脚本工作。 您能在从 CSV 导入\导出部分帮助我吗?

这是我目前所拥有的:

手动:

$User = read-host -Prompt "User Name"
$user_dn = (get-mailbox $user).distinguishedname
"User " + $User + " is a member of the following groups:"
foreach ($group in get-distributiongroup -resultsize unlimited) {
  if ((get-distributiongroupmember $group.identity | select -expand distinguishedname) -contains $user_dn) {$group.name}
}

从进口:

$list = import-csv 1.csv
foreach ($entry in $list) {
$user = $entry
$user_dn = (get-mailbox $user).distinguishedname
"User " + $User + " is a member of the following groups:"
foreach ($group in get-distributiongroup -resultsize unlimited) {
  if ((get-distributiongroupmember $group.identity | select -expand distinguishedname) -contains $user_dn) {$group.name}
}

我无法进行导出工作我收到“空管道”​​错误。

【问题讨论】:

  • 请显示无效的代码,以及完整的错误信息。
  • 我认为对于这样的项目,您需要考虑某人将如何使用您的输出结果。例如,您希望这个 CSV 看起来如何?您是否希望有这些列标题? Username,GroupName,GroupName,GroupName,GroupName 很难想象这对接收报告的最终方有何用处。 XML 列表可能会更好,这样最终用户可以展开和折叠用户以查看他们的组。我的观点:确保你想清楚了。 CSV 可能不是一个好的输出格式。

标签: powershell export-to-csv exchange-server-2010 import-from-csv


【解决方案1】:

给你,我想这会满足你的需求。

get-distributiongroup | ForEach-Object {

$groupName = $_
Get-DistributionGroupMember -Identity $groupname.Name | ForEach-Object{
    [pscustomObject]@{GroupName=$groupname;groupMember=$_.Name}
    }

} | Group-Object -Property GroupMember | Select Name, @{Name=‘Groups‘;Expression={$_.Group.GroupName}}

我们获得了所有分发组的大列表,然后为每个分发组解析每个组的完整成员资格。对于我们发现谁是该组的成员的每个用户,我们创建一个“用户名,组名”的自定义对象。完成后,我们将其发送到 Group-Object 命令,让它挑选出每个唯一用户,并收集他们的所有成员资格。然后我们可以将其发送到 CSV 文件中,以获得这样的输出。

#TYPE Selected.Microsoft.PowerShell.Commands.GroupInfo
"Name","Groups"
"Stephen","Group_1 Group_2 OtherFolks"
"Lenna.Paprocki","Group_2 OtherFolks"
"James.Butt","Group_2 OtherFolks"
"Josephine.Darakjy","OtherFolks"

我仍然认为 XML 文件是一种更好的查看方式,因为您可以在顶部放置一个 XSLT 文件,以便您的用户非常轻松地查看报告、单击用户名并查看他们的所有组,然后根据需要折叠。

【讨论】:

    猜你喜欢
    • 2015-05-23
    • 2019-08-17
    • 2019-01-17
    • 2017-07-23
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    相关资源
    最近更新 更多