Этот скрипт работает без ошибок, но проблема в том, что при обнаружении нескольких групп в базе поиска скрипт добавит всех пользователей из всех групп в целевые группы перекрестного леса.Powershell Добавление пользователей в группы для пересечения лесных групп
Так, например:
ForestAGroup1 = содержит 2 пользователей
ForestAGroup2 = содержит 2 пользователей
:: запускает скрипт ::
теперь ...
ForestBGroup1 = содержит 4 пользователей
ForestBG roup2 = содержит 4 пользователей
В ForestBGroup1/2 должны быть одинаковые пользователи, такие как ForestAGroup1/2.
Вот скрипт для справки:
$creds = Get-Credential
$Groups = Get-ADGroup -Properties * -Filter * -SearchBase "OU=TEST,OU=Shop Print Groups,OU=User,OU=domain Groups,DC=domainA,DC=com" | export-csv c:\temp\test.csv
$Groups = Get-ADGroup -Properties * -Filter * -SearchBase "OU=TEST,OU=Shop Print Groups,OU=User,OU=domain Groups,DC=domainA,DC=com"
Foreach($G In $Groups)
{
#Display group members and group name
Write-Host $G.Name
Write-Host "-------------"
$G.Members
#Add members to domainB group
$domainGMembers = import-csv C:\temp\test.csv | ForEach-Object -Process {Get-ADGroupMember -Identity $_.CN} | Select-Object samaccountname | export-csv c:\temp\gmembers.csv
$domainDNUser = import-csv C:\temp\gmembers.csv | ForEach-Object -Process {Get-ADUser $_.samaccountname -Server "domainA.com" -properties:Distinguishedname}
import-csv C:\temp\gmembers.csv | ForEach-Object -Process {Add-ADGroupMember -Server "domainB.com" -Identity $G.Name -Members $domainDNUser -Credential $creds -Verbose}
}
Вы всегда должны чистить свой пример для получения конфиденциальной информации. Помните, что Contoso.com - отличная компания. Данные теперь живут в истории .. –
Ваш вопрос непонятен. Вы говорите, что хотите иметь те же элементы в «ForestBGroup1», что и в «ForestAGroup1» («The ForestBGroup1/2 должен содержать одинаковых пользователей, таких как ForestAGroup1/2.»), Но ваш пример показывает 2 члена в A1 и 4 в B1. Наличие всех членов во всех группах звучит не так, поэтому мой ответ будет соответствовать только A1 с B1 и т. Д. Если вы действительно хотите, чтобы все пользователи в каждой группе B, вы должны добавить их в одну группу B и добавить это к другие B-группы. Вы не хотите поддерживать 10 групп с одинаковыми членами. –
Мой пример чист от конфиденциальной информации, от того, что я вижу? Да, ForestAGroups1/2 должен совпадать с ForestBGroups1/2, но вместо этого он объединяет всех пользователей в целевые группы ForestB. – Kyle