Get-ADUser -Filter {objectClass -eq "user" -and objectCategory -eq "person" -and Enabled -eq $True} -properties $paramlist | Select-Object $paramlist | where {$_.extensionattribute15 -ne $null} | sort extensionattribute15
Powershell
Список всех ящиков и групп рассылки в 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;