извлекать пользователей из заданного списка групп и извлекать данные для каждого нового имени группы в тексте, используя powershell - PullRequest
0 голосов
/ 12 мая 2019

Возникла проблема в командлете выходного файла при извлечении списка пользователей из заданного списка групп.Мне нужно каждый раз создавать новый текстовый файл в текстовом формате с именем групп, указанных в списке контента, и данными, которые генерируются каждый раз, которые должны быть в этом текстовом файле.

$grp= Get-Content 'C:\Users\p731400a\Desktop\groups.txt'
$grpdata= @()
$grpname=@()
foreach($grps in $grp)
{
    $grps
    $data= get-qadgroupmember $grps | Select-Object samaccountname | ft -AutoSize
    $grpname +=$grps
    $grpdata+= $data
}
Out-File -FilePath C:\Users\p731400a\Desktop\$grps.txt -InputObject $grpdata

1 Ответ

0 голосов
/ 12 мая 2019

Если во входном файле имена групп хранятся в каждой отдельной строке, это должно быть сделано:

# read the input file as string array and loop through the list
Get-Content 'C:\Users\p731400a\Desktop\groups.txt' | ForEach-Object {
    # the $_ automatic variable here represents one group name at a time

    # add the `-Indirect` switch to get group members recursively when using 'Get-QADGroupMember'
    $members = Get-QADGroupMember $_ -Type 'user' -Indirect | 
               Select-Object -ExpandProperty SamAccountName

    # or use 
    # $members = Get-ADGroupMember -Identity $_ -Recursive | 
    #            Where-Object { $_.objectClass -eq 'user' } | 
    #            Select-Object -ExpandProperty SamAccountName

    #output on screen:
    Write-Host ("{0}`r`n{1}" -f $_, ('-' * $_.Length)) -ForegroundColor Yellow
    $members

    #output to file:
    $members | Add-Content -Path "C:\Users\p731400a\Desktop\$_.txt"
} 

Надеюсь, что поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...