Перейти к содержимому

Как сделать автоматическое создание почтового ящика exchange.

  • Выполняется каждый час ищет OU office и просматривает поле mail, если пустое то почта заводится в базу SK05/06 в зависимости какая свободна.
  • Политика хранения ставится Move to archive after 6 month.
  • Проставляется архив в зависимости от номера базы.

 

<# .SYNOPSIS
    Заведение почты  adminbd
.DESCRIPTION
    Скрипт ищет пользователей с пустым полем mail и заводит почту в adminbd.ru. Исключение $OfficeOU = "*Office*".
#>
#╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗#
$Host.UI.RawUI.WindowTitle = "Заведение почты  adminbd"
#╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝#
[system.gc]::Collect()
 
#------ Variables ------#
 
$BaseOU = "OU=Locations,DC=adminbd,DC=ru"
$OfficeOU = "*Office*"
<#$MailCorp = Get-ADUser -SearchBase $BaseOU -filter {Enabled -eq "True"} -properties 'mail','UserPrincipalName','SamAccountName','CanonicalName'| Where-Object {$_.mail -Match ".*@corp.adminbd.ru"} |
    Where-Object    {
        !($(foreach ($u in $ExceptinOU) {$_.CanonicalName -like  $u}) -contains ($True))
    } #>
$MailCorp = Get-ADUser -SearchBase $BaseOU -filter {Enabled -eq "True"} -properties 'mail','UserPrincipalName','SamAccountName','CanonicalName' |
Where-Object    {
        ($_.CanonicalName -like $OfficeOU) -and ($_.mail -like $NULL)
    }
#$MailCorp = Get-ADUser -Identity Anastasiya.Bodrukh -properties 'mail','CanonicalName'
 
  
 #------ Execution ------#
#$UserCredential = Get-Credential
$UserCredential = Import-CliXML -Path 'D:\Programs\Scripts\adminbd_office\mycredentials_adminbd.xml'
$Sessionadminbd = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://MXS01.adminbd.ru/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Sessionadminbd -DisableNameChecking -AllowClobber
 
 
 foreach ($User in $MailCorp) {
    $base = get-mailboxdatabase -Identity "SK*" -Status | Where-Object {($_.Name -like 'SK05') -or ($_.Name -like 'MSK06')} | Sort-Object DatabaseSize | Select-Object -First 1
    Enable-Mailbox -Identity $User.UserPrincipalName -Database $base.name -RetentionPolicy 'Move to archive after 6 month'
    if ($base.name -eq 'MSK05') {
        Enable-Mailbox -Identity $User.UserPrincipalName -Archive -ArchiveDatabase RC03
    } else {
        Enable-Mailbox -Identity $User.UserPrincipalName -Archive -ArchiveDatabase RC04
    }  
    #Add-ADGroupMember -Identity 'G-Deny to send outside-11647250310' -Members $User.SamAccountName
    #Set-CASMailbox -Identity $User.UserPrincipalName -ActiveSyncEnabled $false -MAPIEnabled $false
    #Write-host $User.SamAccountName
 }
 
 Remove-PSSession $Sessionadminbd

 

Similar Posts:

Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *