Skip to content

Instantly share code, notes, and snippets.

@themaximax
Created March 4, 2025 09:04
Show Gist options
  • Save themaximax/0ac67cd74910da002c71e1e3ef0333e9 to your computer and use it in GitHub Desktop.
Save themaximax/0ac67cd74910da002c71e1e3ef0333e9 to your computer and use it in GitHub Desktop.
# Импортируем модуль Active Directory (если не импортирован автоматически)
Import-Module ActiveDirectory
# Указываем путь к контейнеру с пользователями
$OU = "OU=Users,OU=Zavod,OU=KUR,DC=firma,DC=ru"
# Таблица для сопоставления старых и новых групп
$groupMapping = @{
"WG ISA ALL MSK" = "WG ISA ALL BLG"
"WG ISA HR MSK" = "WG ISA HR BLG"
"WG ISA Shopping MSK" = "WG ISA EXT BLG"
"WG ISA STD MSK" = "WG ISA STD BLG"
"WG ISA Social MSK" = "WG ISA Messendgers BLG"
}
# Получаем всех пользователей из OU
$users = Get-ADUser -Filter * -SearchBase $OU -Properties MemberOf
# Обрабатываем каждого пользователя
foreach ($user in $users) {
Write-Host "Обрабатываем пользователя: $($user.SamAccountName)"
# Получаем список групп, в которых состоит пользователь (второй способ быстрее)
# $userGroups = Get-ADPrincipalGroupMembership -Identity $user.SamAccountName
$userGroups = $user.MemberOf | ForEach-Object { $(Get-ADGroup $_).Name }
# Проверяем каждую старую группу из таблицы
foreach ($oldGroup in $groupMapping.Keys) {
if ($userGroups -contains $oldGroup) {
$newGroup = $groupMapping[$oldGroup]
try {
Write-Host "+ '$newGroup' " -NoNewline
if ($userGroups -notcontains $newGroup) {
Add-ADGroupMember -Identity $newGroup -Members $user.SamAccountName -ErrorAction Stop
Write-Host "ОК" -ForegroundColor Green
} else {
Write-Host "Уже состоит" -ForegroundColor Yellow
}
Write-Host "- '$oldGroup' " -NoNewline
Remove-ADGroupMember -Identity $oldGroup -Members $user.SamAccountName -Confirm:$false -ErrorAction Stop
Write-Host "ОК" -ForegroundColor Green
}
catch {
Write-Host "Ошибка при обработке пользователя: $_" -ForegroundColor Red
}
}
}
}
Write-Host "Обработка завершена." -ForegroundColor Green
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment