Положите это здесь для дальнейшего использования.Я нахожусь в процессе миграции электронной почты.Мне нужно знать каждую учетную запись пользователя и членство в соответствующей группе, а также мне нужно знать каждую группу и ее соответствующих членов.
Я использую приведенный ниже блок кода для вывода CSV для каждого членства в группе пользователя.
Get-ADUser -Filter * |`
ForEach-Object { `
$FileName = $_.SamAccountName + ".csv" ; `
$FileName ; `
Get-ADPrincipalGroupMembership $_ | `
Select-Object -Property SamAccountName, name, GroupScope, GroupCategory | `
Sort-Object -Property SamAccountName | `
Export-Csv -Path $FileName -Encoding ASCII ; `
}
Процесс экспорта для групп и их соответствующих членов был немного запутанным, но ниже работает.Выходные имена файлов включают тип группы.Поэтому группы рассылки электронной почты, которые мне нужны, это / должны быть универсальными и глобальными группами рассылки.Я должен иметь возможность просто удалить или переместить получающиеся в результате файлы TXT, которые мне не нужны.
Get-ADGroup -Filter * | `
Select-Object -Property Name, DistinguishedName, GroupScope, GroupCategory | `
Sort-Object -Property GroupScope, GroupCategory, Name | `
Export-Csv -Path ADGroupsNew.csv -Encoding ASCII
$MyCSV = Import-Csv -Path .\ADGroupsNew.csv -Encoding ASCII
$MyCSV | `
ForEach-Object { `
$FN = $_.GroupScope + ", " + $_.GroupCategory + ", " + $_.Name + ".txt" ; `
$FN ; `
Get-ADGroupMember -Identity $_.DistinguishedName | `
Out-File -FilePath $FN -Encoding ASCII ; $FN=""; `
}