Список всех ящиков и групп рассылки в csv

Скрипт для выгрузки всех ящиков и групп рассылки в csv:

$FileExport = "c:\ab_company.csv"
$dgs = Get-DistributionGroup
$mbx = Get-Mailbox
$CSVrows = @()
foreach ($m in $mbx) {
	$CSVrows += $m | Select DisplayName, PrimarySmtpAddress, HiddenFromAddressListsEnabled
}
foreach ($dg in $dgs) {
	$CSVrows += $dg | Select DisplayName, PrimarySmtpAddress, HiddenFromAddressListsEnabled
}
$CSVrows | Export-CSV -Path $FileExport -force -NoTypeInformation -Encoding "UTF8" -Delimiter ";"

Скрипт для выгрузки состава групп рассылки:

$FileExport = "c:\dgs.csv"
$dgs = Get-DistributionGroup
$mbx = Get-Mailbox
$CSVrows = @()
foreach ($dg in $dgs) {
	Write-Host $dg.Name -fore Green
	Get-DistributionGroupMember -Identity $dg.Identity | % {
		#Write-Host "`t"$_.DisplayName"`t"$_.PrimarySmtpAddress"`t"$_.RecipientType
		$CSVrow = "" | Select DistributionGroup,DG_email,Member_DisplayName,Member_PrimarySmtpAddress,Member_RecipientType
		$CSVrow.DistributionGroup = $dg.Name
		$CSVrow.DG_email = $dg.PrimarySmtpAddress
		$CSVrow.Member_DisplayName = $_.DisplayName
		$CSVrow.Member_PrimarySmtpAddress = $_.PrimarySmtpAddress
		$CSVrow.Member_RecipientType = $_.RecipientType
		$CSVrows += $CSVrow
	}
}
$CSVrows | Export-CSV -Path $FileExport -force -NoTypeInformation -Encoding "UTF8" -Delimiter ";"

Exchange: Создание почтовых ящиков

Создание пользователя в Active Directory

$OU='OU=Company1,OU=USERS,OU=ACCOUNTS,DC=DOMAIN,DC=LOCAL'
$u='Vasya.Pupkin'; $pwd='Xcee3Dj*i'; New-ADUser -GivenName $u.split(".")[0] -Surname $u.split(".")[1] -DisplayName ($u.split(".")[1] + " " + $u.split(".")[0]).trim() -Name ($u.split(".")[1] + " " + $u.split(".")[0] + " (Company1)").trim() -SamAccountName (($u[0..15] -join "")+'.cmp1') -UserPrincipalName ($u+"@company1.com") -Path $OU -AccountPassword(ConvertTo-SecureString $pwd -AsPlainText -force) -Enabled $true -ChangePasswordAtLogon $true

Активировать ящик:

$Database="Mail_DB_01"
$user="Vasya.Pupkin";
	$identity=$($user+"@company1.com")
	Enable-Mailbox -Identity $identity -Alias (($user[0..15] -join "")+'.cmp1') -Database $Database
	Get-Mailbox –Identity $identity | Set-Mailbox `
	-EmailAddressPolicyEnabled $false `
	-EmailAddresses "SMTP:$($user+"@company1.com")", `
	 "X500:/o=DOMAIN/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=Pupkin Vasya (company1)f40";

Создать контакт в AD и Exchange:

New-MailContact -Name "Pupkin Vasya (GR)" -DisplayName "Pupkin Vasya" -FirstName "Vasya" -LastName "Pupkin" -ExternalEmailAddress "Vasya.Pupkin@domain.com" -Alias "Vasya.Pupkin.gr.contact" -OrganizationalUnit "OU=Contacts,OU=MAIL,OU=ACCOUNTS,DC=DOMAIN,DC=LOCAL"
$u = "Vasya.Pupkin"; New-MailContact -Name ($u.split(".")[1] + " " + $u.split(".")[0] + " (GR)").trim() -DisplayName ($u.split(".")[1] + " " + $u.split(".")[0]).trim() -FirstName $u.split(".")[0] -LastName $u.split(".")[1] -ExternalEmailAddress ($u+"@domain.com") -Alias ($u+".gr.contact") -OrganizationalUnit "OU=GR,OU=Mail_Contacts,OU=USERS,OU=ACCOUNTS,DC=DOMAIN,DC=LOCAL"; Set-MailContact -Identity ($u+".gr.contact") -HiddenFromAddressListsEnabled $true;