Сценарий членства в группе пользователей не работает [закрыто]

Есть идеи, почему приведенный ниже код не работает?

Попытка экспортировать имя пользователя, а затем группы в CSV. Мне нужны только названия групп.

Пожалуйста, помогите - большое спасибо

$users = (Get-Content users.txt)
foreach ($user in $users) {
$file = $user.Name + '_ACL'        
(Get-ADUser –Identity $user –Properties MemberOf).MemberOf -replace '^CN=([^,]+),OU=.+$','$1' | Export-CSV -path "$file.csv" -NoTypeInformation
}
-3
задан 30 September 2016 в 19:15
2 ответа

Я всегда использую команды AD Quest. ... ниже будут извлечены все группы в указанном поисковом корне с членами ...

Add-PSSnapin Quest.ActiveRoles.ADManagement
Connect-QADService
$GroupInfo = '' | Select 'Group Name','Group Samaccountname','Group Description','Member Name','Member Description'
$AllGroups = @()
$MyGroups = Get-QADGroup -SearchRoot "OU...." -DontUseDefaultIncludedProperties  -IncludedProperties Name,samaccountname,Description,Member | select Name,samaccountname,Description,Member
foreach($Group in $MyGroups){
    $GroupInfo.'Group Name' = $Group.Name
    $Groupinfo.'Group Samaccountname' = $Group.Samaccountname
    $GroupInfo.'Group Description' = $Group.Description
    foreach($Member in $Group.Member){
        $User = Get-QADUser $Member -DontUseDefaultIncludedProperties -IncludedProperties Name,samaccountname,Description | select Name,samaccountname,Description
        $GroupInfo.'Member Name' = $User.Name
        $GroupInfo.'Member Samaccountname' = $User.Samaccountname
        $GroupInfo.'Member Description' = $User.Description 
        #it takes a while to go through a lot of goups...this just lets you watch so you don't think it's broke and cancel it.
        $GroupInfo | select 'Group Name','Group Samaccountname','Group Description','Member Name','Member Samaccountname','Member Description'
        $AllGroups += $GroupInfo | Select 'Group Name','Group Samaccountname','Group Description','Member Name','Member Samaccountname','Member Description'
    }
}

$AllGroups | Export-Csv Groups_w_members.csv -NoTypeInformation #Export all that group info to csv file.
1
ответ дан 5 December 2019 в 21:55

Для этого (Get-ADUser -Identity $user -Properties MemberOf). MemberOf, попробуйте использовать Get-ADUser -Identity $user -Properties MemberOf | Select-Object -ExpandProperty MemberOf.

$users = (Get-Content users.txt) Котировки не нужны, и Import-Csv дает лучшие результаты, чем Get-Content. Первая строка CSV предоставляет имена свойств. Итак, $users = Import-Csv users.csv.

'^CN=([^,]+),OU=.+$','$1' Что такое $1? Похоже, он недоработан. Если только это не часть регекса. Если это какая-то переменная, то единичные котировки не позволят ее вычислить.

Также учтите:

 $users = Import-Csv users.csv
 foreach ($user in $users) {
      $currentUser = Get-ADUser $user -Properties MemberOf 
      $groups = $currentUser | Select-Object -ExpandProperty MemberOf
      foreach ($group in $Groups) {
           $groupName = Get-ADGroup $group | select name
           # do something here with a collection to collect the groupnames
      }

      # do something here with a custom object 
      # to collect the properties from user and groups
      # using a custom object named $customUser

      $customUser | Export-Csv -NoTypeInformation -Append  export.csv
  }
1
ответ дан 5 December 2019 в 21:55

Теги

Похожие вопросы