найти учетные записи

Giroskop

Случайный прохожий
11.05.2018
85
0
8
Добрый день! Как можно найти учетки компов, которые входят в определенную группу, например group1 и надо этим же компам добавить группу group 2. Подскажите как сделать ?
 
Администрирование сервисов
Чтобы решить эту задачу, проще всего использовать PowerShell с модулем Active Directory. Ниже приведен пошаговый план и готовый скрипт.

### 📝 План действий

Вот логика того, что нам нужно сделать:

1. **Найти** все учетные записи компьютеров, которые являются членами группы `group1`.
2. **Добавить** найденные учетные записи в группу `group2`.

Вы можете использовать два разных подхода для изменения членства в группах. Разница между ними показана в таблице .

| Командлет | Фокус операции | Преимущество в нашем случае |
| :--- | :--- | :--- |
| **`Add-ADGroupMember`** | **На группе.** Вы указываете группу (`group2`) и говорите, кого в нее добавить. | Позволяет передать список компьютеров напрямую. |
| `Add-ADPrincipalGroupMembership` | **На объекте (компьютере).** Вы указываете компьютер и говорите, в какие группы его добавить. | Требует добавлять компьютеры по одному в цикле. |

Для нашей задачи **`Add-ADGroupMember`** подходит лучше, так как мы уже получили список всех нужных компьютеров.

### 🧑‍💻 PowerShell скрипт (готовое решение)

Перед запуском скрипта убедитесь, что:
- Консоль PowerShell запущена **от имени администратора**.
- На вашем компьютере установлен модуль `ActiveDirectory`. Обычно он доступен на машинах с инструментами удаленного администрирования сервера (RSAT).
- Замените `"group1"` и `"group2"` на реальные имена ваших групп.

```powershell
# Импортируем модуль для работы с Active Directory
Import-Module ActiveDirectory

# --- НАСТРОЙКИ (укажите здесь ваши имена групп) ---
$sourceGroupName = "group1" # Группа, членство в которой проверяем
$targetGroupName = "group2" # Группа, в которую нужно добавить компьютеры
# ---------------------------------------------------

Write-Host "Ищем компьютеры в группе '$sourceGroupName'..." -ForegroundColor Cyan

# 1. Получаем все компьютеры, которые состоят в исходной группе
# Командлет Get-ADGroupMember находит всех участников группы и фильтрует только объекты с типом "computer"
$computers = Get-ADGroupMember -Identity $sourceGroupName | Where-Object {$_.objectClass -eq "computer"}

# Проверяем, найдены ли компьютеры
if ($computers -eq $null -or $computers.Count -eq 0) {
Write-Host "В группе '$sourceGroupName' не найдено ни одной учетной записи компьютера." -ForegroundColor Yellow
} else {
Write-Host "Найдено компьютеров: $($computers.Count). Добавляем их в группу '$targetGroupName'..." -ForegroundColor Cyan

# 2. Добавляем найденные компьютеры в целевую группу
# Командлет Add-ADGroupMember добавляет участников. Обратите внимание на параметр -Members
Add-ADGroupMember -Identity $targetGroupName -Members $computers

# 3. Выводим результат на экран
Write-Host "Готово! Компьютеры из '$sourceGroupName' добавлены в '$targetGroupName'." -ForegroundColor Green

# Дополнительно: показываем список добавленных компьютеров
Write-Host "Список добавленных компьютеров:" -ForegroundColor Cyan
$computers.Name | ForEach-Object { Write-Host "- $_" }
}
```

### 🔍 Объяснение ключевых команд

1. **`Get-ADGroupMember -Identity $sourceGroupName`**: Эта команда получает список всех участников (пользователей, компьютеры, другие группы) указанной группы .
2. **`Where-Object {$_.objectClass -eq "computer"}`**: Это фильтр. Он берет полученный список и оставляет только те объекты, у которых свойство `objectClass` равно `computer`, то есть только компьютеры . Это важно, если в `group1` могут быть и другие объекты.
3. **`Add-ADGroupMember -Identity $targetGroupName -Members $computers`**: Это основная команда. Она добавляет всех компьютеров из переменной `$computers` в группу `$targetGroupName` .

### 📌 Важный совет

- **Права доступа:** Для выполнения этих команд ваша учетная запись должна иметь права на изменение членства в обеих группах в Active Directory.

Таким образом, вы одним скриптом найдете все нужные компьютеры и добавите их в целевую группу.