Скрипт. Поиск отключенных аккаунтов AD, выгруженных PST-файлов.

Задача — выполнить поиск отключенных учетных записей в Active Directory, найти учетные записи с существующим почтовым ящиком. Проверить, выгружен ли pst-файл почтового ящика из Exchange, если не выгружен — сформировать список людей для последующей выгрузки.

Import-module Activedirectory
##### Задаём OU для поиска #####
$SearchBase = 'OU=Test,OU=Disabled Accounts,DC=test,DC=ru','OU=Test2,OU=Disabled Accounts,DC=test,DC=ru'

##### Поиск учёток по последнему логину(до 31 декабря 2015) и выгрузка в файл #####
$Searchbase | foreach {Search-AdAccount -accountinactive -usersonly -da "31 dec 2015" -SearchBase $_ | select -ExpandProperty samaccountname | ft -HideTableHeaders -auto  | out-file .\DisabledUsers.txt -Append }
$User = Get-Content .\DisabledUserstest.txt

##### Фильтр по отключенным учеткам, у которых есть ящик (e-mail) #####
$User | foreach {Get-adUser -Identity $_ -Properties mail | Where {$_.mail -ne $Null} | select -ExpandProperty samaccountname | ft -HideTableHeaders -auto  | out-file .\DisabledUsersWithEmail.txt -Append } 

##### Путь к существующим pst-файлам #####
$path = '\\test.ru\PST\20*'

##### Список существующих pst-файлов и выгрузка в файл #####
$pst = Get-ChildItem -path $path -Recurse | select  -ExpandProperty BaseName | ft -HideTableHeaders -auto | out-file .\AllPstFilesArray.txt

##### Подключение к серверу Exchange #####
$ExSession = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri ‘http://mail/PowerShell/?SerializationLevel=Full’ –Authentication Kerberos
Import-PSSession $ExSession

$Mailboxes = Get-Content ".\DisabledUsersWithEmail.txt"
##### Проверка на существование переадресации в ящике #####
 foreach ($mailbox in $mailboxes)
{ 
   Get-Mailbox -Identity $mailbox | Where {$_.ForwardingAddress -ne $Null} | select -ExpandProperty samaccountname | out-file .\DisabledUsersWithEmailAndForwardingAddress.txt -Append 
}

##### Ящики(пользователи) без переадресации #####
foreach ($mailb in $mailboxes)
{ 
   Get-Mailbox -Identity $mailb | Where {$_.ForwardingAddress -eq $Null} | select -ExpandProperty samaccountname | out-file .\DisabledUsersWithEmailWithOutForwardingAddress.txt -Append 
} 

##### Сравнение списка юзеров, у которых есть почта(и нет переадресации) и списка выгруженных pst-файлов, и экспорт списка юзеров без pst-файла #####
$(Get-Content .\DisabledUsersWithEmailWithOutForwardingAddress.txt) | where {$(Get-Content .\PstFilesArray.txt) -notcontains $_} | sort-object | Out-file .\UsersWithOutPstFile.txt

##### Удаление сессии подключения к Exchange #####
Remove-PSSession $ExSession

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

Ваш адрес email не будет опубликован.