powershell出口组成员资格多个职位

时间:2019-11-12 10:57:39

标签: powershell

我的csv在彼此下面有多个职位,就像这样:

Job title 1
Job title 2
Job title 3

我现在需要的是导出具有该职位名称的用户的组成员身份,例如,一个职位名称为1的人具有几个组成员身份。我需要csv中的那些组成员身份。是否有可能对我的整个csv自动做到这一点,因为它一一完成所有职位?

我有这个:

Get-ADUser -Filter {title -Like "Medior Functioneel beheerder"} | Get-ADPrincipalGroupMembership | select name

我如何获得它,所以它只能进行一次匹配,因为我们有多个具有相同职务的用户,但我只需要一个用户。以及如何将其导出到csv最好在一行上。每个职位。

1 个答案:

答案 0 :(得分:0)

我会这样处理:

  • 对于每个职位:
    • 使用其memberOf值检索所有用户
    • 选择所有不同的成员身份
    • 输出带有标题+成员资格列表的自定义对象
  • 将自定义对象导出到CSV
$csv = @'
Title
Job title 1
Job title 2
Job title 3
'@ |ConvertFrom-Csv # you'd use `Import-Csv` here instead

$result = foreach($row in $csv){
  # Fetch all relevant users with their `memberOf` attribute value
  $Users = Get-ADUser -Filter "title -eq '$($row.Title)'" -Properties memberOf

  # Select all distinct memberOf values
  $Memberships = $Users.memberOf |Sort -Unique

  # Resolve the group names
  $GroupNames = ($Memberships |Get-ADGroup).Name

  # Output custom object 
  [pscustomobject]@{
    Title = $row.Title
    Groups = $GroupNames -join ';'
  } 
}

# output to CSV
$result |Export-Csv -Path .\output.csv