Скрипт. Поиск отключенных аккаунтов 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