Я вытягиваю множество объектов AD с помощью PS и помещаю их в коллекцию MongoDB, используя драйвер MDBC (https://github.com/nightroman/Mdbc).. При этом создается коллекция с приблизительно 35000 документов.
Сценарий psобновит базу данных, если пользователи будут отключены или некоторые атрибуты изменятся в AD.
Но проблема возникает, когда пользователи удаляются из AD. Мне нужно обновить это в MongoDB.
Подходдо сих пор извлекает все данные из Mongo и проверяет, есть ли они в $ ADUsers, то есть в списке, который я извлек из AD. Затем я обновляю некоторые поля в MongoDB. Итак, в основном я перебираю массив powershell и проверяюDB.
$adusers = Get-ADUser -Filter *
Connect-Mdbc $connectionString Company Users
$usersInDB = Get-MdbcData -As PS
foreach ($userInDB in $usersInDB)
{
$result = $adusers.Where({ $_.id -eq $userInDB._id })
if (-not $result)
{
Update-MdbcData -Query $query (New-MdbcUpdate -Set @{
ADEnabled = $false;
Status = "Deleted";
})
}
}
Проблема в том, что это занимает слишком много времени. По-видимому, Powershell не нравится, когда я перебираю все элементы, но я не мог найти лучший способ сделать это.
Итак, знаете ли вы лучший способ сделать это? Любые идеи приветствуются.