• SCCM 2007 R2 - Создание коллекции по членству компьютеров в OU

    imageОчередная задача потребовала создания коллекции компьютеров в SCCM с условием зависящим принадлежности этих компьютеров к конкретному доменному контейнеру/OU. Для начала стоит отметить то, что для того чтобы можно было делать выборки по OU в свойствах сайта SCCM должен быть включен и настроен метод обнаружения Active Directory System Group Discovery который в частности отвечает за сбор информации об OU в домене. Этот метод собирает информацию в дополнение к информации собранной методом обнаружения - Active Directory System Discovery.

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

  • SharePoint 2010 - Замена значений типа "Выбор" в элементах списка

    imageСитуация: На сайте SharePoint 2010 создан какой-то Список в котором создан Столбец с типом значения "Выбор". В значение этого Столбца при настройке введено несколько предопределённых позиций, например: "Значение1", "Значение2", "Значение3".

    "Значение1" определено в настройках как значение по умолчанию.

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

    Со временем возникает ситуация, когда какое-то значение нужно заменить на новое, например "Значение1" заменить в настройках Списка на "Значение-А".

    Проблема: При внесении изменений в настройки Списка, существующие элементы списка остаются неизменными.

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

  • PowerShell - Резервное копирование групповых политик Active Directory (GPO)

    PowerShell GPO backup scriptОперацию резервного копирования доменных объектов групповых политик (GPO) можно выполнить штатным способом с помощью консоли Group Policy Management (gpmc.msc), но если нам потребуется автоматизировать данный процесс, - можно использовать командлеты модуля GroupPolicy для PowerShell 2.0

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

  • Windows Server 2008 R2 - Корзина Active Directory

    Active Directory Recycle BinПриведу маленькую шпаргалку по использованию корзины AD (Active Directory Recycle Bin) в домене Windows Server 2008 R2.

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

  • 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 чекбокс включен по умолчанию и не происходит повторных запросов учетных данных.