Как добавить нескольким пользователям несколько групп Active Directory с помощью Powershell

Задача - добавить одному пользователю Active Directory несколько групп из файла.
Если пользователь уже добавлен в какие то группы из списка(вылезет ошибка в процессе) - скрипт продолжит выполнение дальше.

Get-Content "C:\scripts\groups.txt" | Add-ADGroupMember -Members "vasiliy"

Задача - добавить нескольким пользователям из списка несколько групп с помощью Powershell.
Решение 1:
Если хоть один пользователь уже будет добавляемой группе, скрипт остановится. Запускать только если в добавляемых группах точно нет этих пользователей!

$users = Get-Content "C:\scripts\users.txt"
get-content "C:\scripts\groups.txt" | Add-ADGroupMember -Members $users

Читать далее

Импорт групп рассылки в Exchange из CSV с помощью Powershell

Задача - импортировать(создать) группы рассылки из файла в Exchange.

Работоспособно для Windows Server 2008 R2, PowerShell 5, Exchange 2010 SP3
Содержимое CSV-файла:
import-groups2

# Подключение в Exchange (если надо)
add-pssnapin microsoft.exchange.management.powershell.e2010 
# Импорт модуля (если надо)
import-module activedirectory 
$Groups = Import-CSV -Path "C:\scripts\groups.csv" -delimiter ";" -Encoding Default

Foreach ($Group in $Groups) {
new-DistributionGroup -Name $Group.Name -OrganizationalUnit $Group.OrganizationalUnit -SamAccountName $Group.sAMAccountName -Alias $Group.Alias
Set-DistributionGroup -BypassSecurityGroupManagerCheck -RequireSenderAuthenticationEnabled $false -Identity $Group.Identity
}

Импорт пользователей в active directory из CSV. Создание ящика в Exchange

Задача - сделать в Active Directory импорт пользователей из csv-файла и создать им ящики в Exchange.
Работоспособно для Windows Server 2008 R2, PowerShell 5, Exchange 2010 SP3

Содержимое CSV-файла:
import-csv

# Подключение в Exchange (если надо)
add-pssnapin microsoft.exchange.management.powershell.e2010 
# Импорт модуля (если надо)
import-module activedirectory 

$Users = Import-CSV -Path "C:\scripts\import\users.csv" -delimiter ";" -Encoding Default

foreach ($User in $Users)  
{  
 $Name = $User.Name
 $GivenName = $User.GivenName
 $Surname = $User.Surname
 $Department = $User.Department
 $Title = $User.Title
 $Description = $User.Description
 $Password = $User.Password
 $DisplayName = $User.DisplayName
 $Path = $User.Path
 $Company = $User.Company
 $sAMAccountName = $User.sAMAccountName
 $userprincipalname = $User.userprincipalname
 $Identity = $User.Identity
 $Database = $User.Database
 $Alias = $User.Alias
 
# Добавляем пользователей
 New-ADuser -Name $Name -Surname $Surname -Department $Department -GivenName $GivenName -Title $Title -Description $Description -Company $Company -DisplayName $DisplayName -Userprincipalname $Userprincipalname -Path $Path -CannotChangePassword $false -PasswordNeverExpires $false -ChangePasswordAtLogon $false -PasswordNotRequired $true -Enabled $true -sAMAccountName $sAMAccountName -AccountPassword (ConvertTo-SecureString $Password -AsPlainText -Force)
# Создаём ящик в Exchange
 Enable-Mailbox -identity $Identity -Alias $Alias –Database $Database
# Отключаем OWA и ActiveSync
 Set-CASMailbox -Identity $Identity -OwaEnabled $false -ActiveSyncEnabled $false 
}