Заметки IT Менеджера

18.03.2013

Контроль доступа к другому почтовому ящику в Exchange

exchangeВ крупных компаниях очень важен контроль за применением “критичных” прав. Одним из наиболее важных в Exchange является доступ к другому почтовому ящику. При этом, это право может давать и Администратор пользователей Exchange. А эта роль может быть делегирована.

В этом скрипте я ограничил выборку пользовательскими почтовыми ящиками, убрав оттуда ресурсные и общие ящики, кроме того, сделал так, чтобы этот отчет присылался по почте.

Хорошо бы еще, сделать так, чтобы при получении или удалении таких прав уведомление приходило бы сразу же, но я, пока, не нашел событий в логе системы, которые при этом генерируются.

Ну и этот отчет, на еженедельной, а может и на ежедневной основе поможет контролировать ситуацию

 

#Автор оригинального скрипта: www.exchangefaq.ru/kak-poluchit-spisok-polzovatelej-imeyushhix-dostup-k-chuzhomu-pochtovomu-yashhiku.html + комментарии
#Автор изменений: itpadla.wordpress.com
#Дата создания: 28.08.2012
#Дата изменения: 18.03.2013
#Описание: получить список пользователей, имеющих доступ к чужому почтовому ящику

If ($host.Version.Major -lt 3) {$ExchangePss = Get-PSSnapin -Name Microsoft.Exchange.Management.PowerShell.Admin -ErrorAction SilentlyContinue}
Else {$ExchangePss = Get-PSSnapin -Name Microsoft.Exchange.Management.PowerShell.Admin -ErrorAction Ignore}
If ($ExchangePss.Name -ne "Microsoft.Exchange.Management.PowerShell.Admin") {Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin}

(more…)

Реклама

12.03.2013

Оперативный контроль аккаунтов пользователей и компьютеров в Active Directory

Обновлено 20.03.2013. Внесен ряд исправлений
В скриптах, связанных с удалением компьютерных учетных записей не выводилось имя компьютера
Кроме того, как оказалось, при массовых операциях, например вводах в группу или удалении из группы, приходит только одно уведомление, что само по себе не очень правильно. В связи с этим скрипты несколько переделаны — вместо последнего, отбираются все такие события за последние 120 секунд

Недавно я публиковал заметку Автоматическое уведомление о заблокированных аккаунтах. Там было вполне рабочее решение, но у него был один недостаток – информация приходила в несколько “корявом” виде. В песочнице хабры я нашел нашел статью, в которой аналогичные вещи сделаны гораздо удобнее.

На ее основании я сделал  десяток скриптов, которые будут информировать вас о:

— блокировании и разблокировании (lock/unlock) учетных записей пользователей
— добавлении или удалении кого-либо в/из группы
— включение или выключение (enable/disable) пользовательского аккаунта

— добавление или удаление компьютера в/из домена
— добавление или удаление пользователя в/из домена

Все нижеприведенные скрипты сохраняются в файлы, по одному в каждый из файлов, файлы кладутся на контроллер домена, там же запускается Task Scheduler и в нем создается задача с триггером на соответствующий EventID в Security Log, например 4740, и действием, содержащим запуск C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe с параметром в виде пути к скрипту и его именем, например, C:\cmd\event-notification-4740-account_lockout.ps1

В результате, вы оперативно получаете информацию по важным изменениям в AD и можете на нее оперативно реагировать

(more…)

05.03.2013

Решение проблем с истекающими паролями у пользователей

Одной из регулярных проблем, которая возникает у пользователей – истекший пароль. Пользователи не видят предупреждений от Windows, забывают о них, а иногда, просто о них не знают, т.к. работают удаленно со своих компьютеров, используя личные компьютеры или другие ОС.

Чтобы максимально минимизировать эту проблему нужно сделать две вещи:

  1. Добавить еще один способ уведомления пользователя, по электронной почте. Причем само уведомление должно включать в себя инструкции по смене пароля
  2. Давать отчет администраторам о пользователях у которых пароль уже истек или истечет в ближайшее время. Зачастую это помогает понять источник проблем у пользователя или предотвратить их.

 

Итак, скрипт, который рассылает уведомления пользователям

(more…)

25.02.2013

Отчет по базам данных Exchange 2007/2010

powershell_21

Публикую полезный скриптик, который по всем базам данных Exchange собирает нужную статистику и отправляет отчет по электронной почте.

В самом отчете дается список всех баз данных, сервера, на которых они расположены, пути к ним, размер каждой из баз, количество ящиков в ней, самый большой ящик, его размер, дата и время последнего бэкапа и количество дней, прошедших с этого времени.

Кроме этого, в отчеты цветом выделяются значения размера базы, количества ящиков в ней, размера ящика и времени последнего бэкапа, если они превышают пороговые значения, которые указаны в скрипте.

Для Exchange 2010 может выводиться значения пустого места в базе.

Оригинальный скрипт был написан исключительно под Exchange 2010 и у меня не работал, так что пришлось его модифицировать. Кроме того, в оригинале, зачем-то, для генерации письма использовался файл, в который все и писалось, а в “финале” он включался в сообщение как его содержимое. Это было некрасиво, кроме того, делало сложным запуск этого скрипта как задачи на сервере.

Конечным результатом является отчет вида, представленного ниже

(more…)

14.02.2013

Автоматическое уведомление о заблокированных аккаунтах

powershell_21Откопал интересный скриптик, с помощью которого можно оперативно получать уведомление о заблокированном аккаунте. Почитав комментарии, чуть чуть его изменил, чтобы он быстрее работал и не выдавал ошибок.

Сам скрипт кладется на домен контроллер, там же запускается Task Scheduler и в нес создается задача с триггером на EventID: 4740 в Security Log и действием, содержащим запуск C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe с параметром в виде пути к скрипту и его именем, например, C:\cmd\account-lockout-notification.ps1

 
 
 

#Отсылка сообщений о блокировании аккаунтов
$Event=Get-EventLog -LogName Security -InstanceId 4740 -Newest 1 -ErrorAction SilentlyContinue
$MailBody= $Event.message

$MailSubject= "User Account locked out"
$SmtpClient = New-Object system.net.mail.smtpClient
$SmtpClient.host = "smtp.domain.com"
$MailMessage = New-Object system.net.mail.mailmessage
$MailMessage.from = "AcctLockNotify@domain.com"
$MailMessage.To.add("it@domain.com")
$MailMessage.IsBodyHtml = 1
$MailMessage.Subject = $MailSubject
$MailMessage.Body = $MailBody
$SmtpClient.Send($MailMessage)

17.07.2012

Очень полезный скрипт

22.06.2012

Как починить Windows Update?

Эта статья объединяет известные мне способы починки агента WSUS.

Ранее, я уже писал, как сверить список компьютеров, которые есть в AD с теми, которые есть во WSUS. Если эти списки не совпадают, то у вас проблема и часть компьютеров не обновляется.

В самом простом случае, вы забыли сделать групповую политику, которая настраивает клиентские компьютеры и серверы на обновление со WSUS, или сконфигурировали ее так, что она не применяется. Ручная настройка параметров через gpedit.msc тоже допустима, но только для тех компьютеров, которые не входят в домен.

Итак, политика применяется, но все равно компьютер не обновляется. Что делать и как лечить?

Если у вас Windows Vista, Windows Server 2008, Windows 7 или Windows Server 2008 R2, то самым первым способом будет скачать с сайта Microsoft утилиту System Update Readiness Tool и запустить ее. Если это не поможет, то нижу приведены различные способы, которые могут помочь вам восстановить работоспособность.

(more…)

29.05.2012

Управление firewall Windows из командной строки

Command Prompt В процессе настройки Windows Server часто приходится производить манипуляции с его брандмауэром. Открывать порты, давать доступ программам и т.д. Чтобы чего-то не забыть, ну или просто для написания скриптов могут пригодиться следующие команды netsh.
  • Узнать текущие свойства конфигурации Windows Firewall:

netsh advfirewall firewall show rule name=all

  • Включить или выключить firewall:netsh advfirewall set allprofiies state on
    или
    netsh advfirewall set allprofiles state off

(more…)

22.05.2012

Получение ключа установки Windows с помощью PowerShell

Обновлено 22.05.2012 – спасибо pan_2@LJ за наводку на более совершенную версию скрипта
powershell_21 Эта функция может пригодиться для инвентаризации или других подобных случаев.

(more…)

28.04.2011

Скрипт для автоматической очистки ящиков в Exchange 2007/2010 от ненужных сообщений

У нас в компании есть служебные рассылки в которые приходят служебные сообщения с разного рода информацией: ошибки, предупреждения и т.д. Временами оттуда может прилететь “волна” в сотни мегабайт или того больше, т.к. и самих сообщений может быть десятки тысяч, да и их размер в особо неприятных случаях может достигать нескольких десятков мегабайт.

В былые времена это приводило к ступору сервера. Затем мы перешли на Exchange 2007 и сервера стали намного мощнее и падать сервер перестал. Зато получалась такая себе DOS атака, т.к. вся очередь была забита такими сообщениями, а все остальные проходили тяжело. Мы переформировали очереди, проставили приоритеты и все вроде бы исправилось … Но теперь возникла та проблема, что если такая “волна” проходит на праздниках или во время отпуска, то ящик пользователя может заблокироваться.

После некоторого количества проб было решено написать скрипт, который будет чистить папки пользователей от таких сообщений, в случае если эти сообщения старше одного дня. Срок выбран из эмпирических соображений, т.к. практика показала, что сообщения старше суток никому не нужны.

(more…)

Следующая страница →

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: