• Exchange 2010– Делегирование Send As

    imageПри необходимости делегирования прав на управление почтовыми ящиками в Exchange 2010 можно столкнуться с ситуацией, когда при создании группы ролей путём копирования из преднастроенной группы "Recipient Management" будет создана группа ролей, которая не дает права предоставления разрешения отправки от  имени (Send As). Чтобы добавить это право к созданной группе ролей нужно добавить роль "Active Directory Permissions". Для уже существующей группы ролей это можно выполнить с помощью PS команды:

    New-ManagementRoleAssignment -SecurityGroup "My Recipient Management" -Role "Active Directory Permissions"


    Если же группа ролей которая будет кастомизирована ещё не создана то вот пример для создания группы путём копирования из преднастроенной с добавлением соответствующей роли:

    $RGbyDefault = Get-RoleGroup "Recipient Management"

    New-RoleGroup "My Recipient Management" -Roles $RGbyDefault.roles

    Set-RoleGroup "My Recipient Management" -ManagedBy $RGbyDefault.ManagedBy

    New-ManagementRoleAssignment -SecurityGroup "My Recipient Management" -Role "Active Directory Permissions"


    Так же добавление роли к группе ролей можно выполнить через веб-интерфейс Exchange ECP

    image

  • PowerShell - Аудит использования учетных записей

    imageПродолжая тему анализа доменных учетных записей пользователей и компьютеров, которые давно не проходили авторизацию в домене предлагаю ещё один вариант скрипта из заметки PowerShell – Поиск неиспользуемых учетных записей пользователей и компьютеров в домене. В текущем варианте используется библиотека AD для PowerShell 2.0

    В указанном примере в конкретном OU выбираются все действующие учетные записи пользователей и компьютеров и выполняется сравнение даты последней авторизации (LastLogonDate) с максимально возможным значением (текущая дата минус 90 дней)

    Import-Module ActiveDirectory
    $SearchOU = "OU=Domain Users and Computers,DC=mydom,DC=com"
    $DaysLimit = 90
    $OldestDate = (Get-Date).AddDays(-$DaysLimit)
    #
    $Users = Get-ADUser -Filter {(Enabled -eq $True)} `
    -SearchBase $SearchOU -Properties SamAccountName,LastLogonDate,CN
    $UsersOld = $Users | Where-Object {$_.LastLogonDate -le $OldestDate}
    $UsersOld | Select `
    @{label="SamAccountName";expression={$_.SamAccountName}},`
    @{label="Last Logon";expression={$_.LastLogonDate}},`
    @{label="User Full Name";expression={$_.CN}}`
    | Sort -Property "Last Logon" | Format-Table  –AutoSize
    Write-Host "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
    write-host "Total users in OU: " $Users.Count " / Unused users: " $UsersOld.Count
    Write-Host "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
    #
    $Comps = Get-ADComputer -Filter {(Enabled -eq $True)} `
    -SearchBase $SearchOU -Properties Name,LastLogonDate,Description
    $CompsOld = $Comps | Where-Object {$_.LastLogonDate -le $OldestDate}
    $CompsOld | Select `
    @{label="PC Name";expression={$_.Name}},`
    @{label="Last Logon";expression={$_.LastLogonDate}},`
    @{label="Description";expression={$_.Description}}`
    | Sort -Property "Last Logon" | Format-Table  –AutoSize
    Write-Host "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
    write-host "Total computers in OU: " $Comps.Count " / Unused computers: " $CompsOld.Count
    Write-Host "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

  • PowerShell - Аудит использования парольной политики

    imageПродолжая тему анализа доменных учетных записей пользователей на предмет их соответствия действующей парольной политике предлагаю ещё один вариант скрипта из заметки  PowerShell – Поиск пользователей домена с устаревшими паролями. В текущем варианте используется библиотека AD для PowerShell 2.0

    В указанном примере в конкретном OU выбираются все действующие учетные записи пользователей, за исключением сервисных, для которых значение атрибута SamAccountName начинается с символов “s-” и выполняется сравнение даты последней смены пароля с максимально возможным значением (текущая дата минус 185 дней)

    Import-Module ActiveDirectory
    
    $SearchOU = "OU=Domain Users,DC=mydom,DC=com"
    $PWAgeDaysLimit = 185
    
    $Users = Get-ADUser -Filter {(Enabled -eq $True) -AND (SamAccountName -notlike "s-*")} `
    -SearchBase $SearchOU `
    -Properties CN, SamAccountName, PasswordLastSet, PasswordNeverExpires, CannotChangePassword, LastLogonDate
    
     
    $OldestDate = (Get-Date).AddDays(-$PWAgeDaysLimit)
    $UsersOldPWD = $Users | Where-Object {$_.PasswordLastSet -le $OldestDate}
    $UsersOldPWD | Select `
    @{label="User Full Name";expression={$_.CN}},`
    @{label="SamAccountName";expression={$_.SamAccountName}},`
    @{label="PWD Last Set";expression={$_.PasswordLastSet}},`
    @{label="PWD Never Expirest";expression={$_.PasswordNeverExpires}},`
    @{label="PWD Cannot Change";expression={$_.CannotChangePassword}},`
    @{label="Last Logon";expression={$_.LastLogonDate}}`
    | Sort -Property "PWD Last Set"`
    | Format-Table  –AutoSize 
    Write-Host "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
    write-host "Total user accounts in OU: " $Users.Count
    write-host "Users with passwords not changed in" $PWAgeDaysLimit "days: " $UsersOldPWD.Count
    Write-Host "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
  • Exchange 2010 - Использование Shared Mailbox в Outlook 2010

    Shared Mailbox in Outlook 2010Технология общих почтовых ящиков (Shared mailboxes) в Exchange далеко не нова и, насколько я понимаю, на сегодняшний день считается даже морально устаревшей. Ведь не зря в Exchange 2010 в пользовательский интерфейс консоли управления до сих пор не включена возможность даже создания такого рода ящиков и сделать это можно только с помощью PowerShell. Не смотря на то, что в статье TechNet Library - Understanding Mailbox - Understanding Recipients сказано, что вместо общих ящиков рекомендуется использовать ресурсные ящики (Resource mailboxes) или механизмы совместной работы на SharePoint Server, иногда могут встретиться ситуации, в которых использование общих почтовых ящиков является более удобным вариантом.

    Рассмотрим основные моменты управления общими почтовыми ящиками и ряд проблем, с которыми можно столкнуться при их использовании на практике. Сразу отмечу, что речь пойдёт об использовании общих почтовых ящиков на связке Exchange 2010 SP2 и Outlook 2010 SP1. Читать далее...

  • TMG 2010 - Резервное копирование Array Configuration с PowerShell

    TMG 2010 - Backup Array Configuration with PowerShellОзадачившись вопросом автоматизации регулярного выполнения резервного копирования настроек Forefront TMG 2010 нашёл ряд интересных материалов, в том числе статью, описывающую процедуру настройки взаимодействия DPM сервера и DPM агента, установленного на сервере Threat Management Gateway – "How DPM 2010 Could Protect Forefront TMG 2010 with a Minimum Opening of Feeds" (в блоге The Microsoft MVP Award Program Blog). Учитывая то, что в моём случае серверы являются виртуальными и периодически подвергаются резервному копированию в виде VM на сервер DPM, нет особого смысла в установке агента DPM непосредственно внутрь этих виртуальных машин. Поэтому я решил ограничиться созданием на регулярной основе резервных копий конфигурации массива TMG. Из консоли Threat Management Gateway  Management эта процедура вызывается из меню действий или контекстного меню на конкретном массиве – Export (Back Up).

    Читать далее...

  • RDS Web Access - Опция "Я использую личный компьютер…"

    imageПри запуске приложений RemoteApp опубликованных через веб-страницу Remote Desktop Services Web Access может последовать запрос авторизации для подключения к удалённому терминальному серверу в том случае, если внизу страницы RD Web Access не включена опция "Я использую личный компьютер, соответствующий политике безопасности моей организации"

    image

    Данная опция позволяет осуществить прозрачную передачу учетных данных текущего пользователя, залогинившегося на веб-форму RD Web Access без повторного ввода этих учетных данных. По умолчанию эта опция отключена и если вы используете опубликованные приложения из достоверных источников, например собственных терминальных серверов локальной сети, то возможно вы захотите чтобы по умолчанию данная опция была включена, чтобы не создавать дополнительные сложности пользователям, заставляя их каждый раз включать эту опцию или повторно вводить свои учетные данные. К сожалению мне не удалось найти штатного способа сделать эту опцию включённой по умолчанию и поэтому мы воспользуемся небольшим хаком.

    Найдём на сервере RD Web Access файл Default.aspx в каталоге C:WindowsWebRDWebPagesru-RU

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

    Создадим на всякий случай копию файла Default.aspx, сохранив оригинальный файл с изменённым названием, например Default_ORIGINAL.aspx.

    В файле Default.aspx в секции

    <script runat="server">

    найдём строку: 

    public bool fUserAdmin = false, fConfigPage = false, bShowPublicCheckBox = false, bPrivateMode = false;


    Поменяем в этой строке значение переменной bPrivateMode = true

    Сохраним файл и проверим то что теперь при каждом новом открытии веб-страницы RD Web Access чекбокс включен по умолчанию и не происходит повторных запросов учетных данных.

  • HP Smart Array 6400 - Обновляем прошивку

    imageЕсли вы работаете с серверным оборудованием HP на платформе Windows, то в основной своей массе обновление микропрограммного обеспечения (firmware) той или иной железяки от HP не представляет особых сложностей, так как почти всегда на сайте техподдержки HP доступны последние версии утилит Online-обновления под Windows. Задача может несколько усложнится если возникает потребность прошить какую-то уже морально устаревшую железку. HP предоставляет универсальный загрузочный диск который содержит в себе большую коллекцию прошивок для Offline-обновления. Ранее этот диск назывался Firmware Maintenance CD и умещался на стандартный накопитель CD, но спустя какое-то время, перерос формат CD и трансформировался в современный HP Smart Update Firmware DVD. Не смотря на постоянный рост, из состава этого диска периодически убираются последние доступные версии прошивок для оборудования которое со временем морально устаревает. В этом можно убедиться, если почитать историю изменения состава диска от версии к версии.

    Рассмотрим процесс обновления прошивки железяки, уже ставшей на сегодня раритетом - RAID контроллера HP Smart Array 6400.

    Читать далее...

  • Уменьшение размера фиксированного VHD с помощью VHD Resizer

    imageРассмотрим пример, когда созданный ранее виртуальный диск VHD фиксированного размера потребовалось уменьшить. В нашем примере на одном из виртуальных серверов с Windows Server 2008 R2 имеется NTFS том D:\ занимающий 100% пространства отдельного виртуального VHD диска размером 160Gb. Ранее емкость этого диска использовалась для сетевого файлового ресурса, а теперь на этом диске размещён контент локального сервера WSUS, который занимает гораздо меньше места, и поэтому появилось желание уменьшить размер этого диска.

    image

    Читать далее...

  • HP Smart Array - 1779 - Logical drive(s) disabled due to possible data loss

    Столкнулся на практике с неприятной ситуацией когда дисковая полка HP MSA50 подключенная к серверу виртуализации HP ProLiant DL360 через RAID контроллер HP Smart Array P800 была аварийно обесточена. На дисковой полке был сделан один логический диск RAID 1+0 из 10 физических дисков, который после повторной подачи питания на полку по понятной причине стал недоступен операционной системе хоста. В процессе перезагрузки сервера появилось безрадостное сообщение о том что логический диск отключён контроллером во избежание потери данных:

    image

    Несмотря на то, что в DPM имелась копия виртуальных машин расположенных на отвалившемся томе, стало как то не по себе. Немного пошебуршав на форуме тех.поддержки HP нашёл пару веток обсуждения похожей ситуации (например HP Community - ML 350 G3 "Logical drives disabled due to possible data loss"). Выбор нажатия "F2" при первой загрузке в моём случае исправил ситуацию – логический диск был активирован.

    image

    Благодаря тому что на Smart Array контроллере была установлена кэш-память с исправным на этот момент батарейным модулем, как я понял, данные находящиеся в кэше контроллера на момент падения полки после включения логического диска были успешно дописаны на этот диск, о чем посвидетельствовало статусное сообщение утилиты HP Array Configuration Utility 

    image

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

  • PowerShell - Удаляем устаревшие файлы

    imageЕсли внутри корпоративной сети используются всевозможные сетевые ресурсы доступные множеству пользователей и выполняющие функции файлообменников, например сетевые папки или каталоги FTP серверов, то иногда может возникнуть необходимость в обслуживании таких ресурсов, например периодического удаления файлов и подкаталогов имеющих определённый срок давности. Хочу поделиться маленьким примером когда-то найденного (уже не вспомню где) PowerShell скрипта, который решает у меня такую задачу

    Читать далее...