Поиск

пятница, 24 января 2020 г.

Массовое добавление дополнительных SMTP адресов из *.csv файла в доменные учетные записи пользователей.

Проблема:
При миграции из облачной почты "Яндекса" у части пользователей адреса электронной почты имели нижние подчеркивания и точки, что требовало добавления этих адресов к созданным политиками в MS Exchange.

Решение:
В решении данной проблемы поможет функционал PowerShell.

# Импортируем модуль:
Import-module ActiveDirectory

# Импортируем данные из заранее выгруженного *.csv, записывая дополнительный адрес smtp каждому из файла:
Import-Csv c:\TEMP\underline.csv | foreach {Get-ADUser $_.sam | Set-ADUser -add @{proxyaddresses = "smtp:"+($_.smtp)}}

<#
Содержимое *.csv:
sam,smtp
abdullinii,abdullin_ii@domain.ru
afonasevap,afonasev.ap@domain.ru

zubarevauy,zubareva_uy@domain.ru
#>

пятница, 13 декабря 2019 г.

Скрытие адресов электронной почты в GAL.

Проблема:
При автоматическом формировании телефонного справочника отображаются служебные и отключенные адреса электронной почты, необходимо их скрыть. Данные адреса будут скрыты в GAL (global address list).

Решение:
Назначать атрибуту "msExchHideFromAddressLists" значение "TRUE" создав задание в планировщике:

#################################################################
$OUList = 'OU=Служебные,OU=Пользователи,OU=TMN,DC=Domain,DC=local', `
        'OU=Disabled,OU=Пользователи,OU=SPB,DC=Domain,DC=local', `
        'OU=Disabled,OU=Пользователи,OU=NTG,DC=Domain,DC=local', `
        'OU=Disabled,OU=Users,OU=NUR,DC=Domain,DC=local'

$a = $OUList | ForEach-Object {Get-ADUser -SearchBase $_ -Filter *}

ForEach ($strUser in $a)
    {
    Set-ADUser -Identity $strUser -Add @{msExchHideFromAddressLists="TRUE"}
    }
#################################################################

четверг, 11 апреля 2019 г.

Объединение виртуальных машин Hyper-V в группы.

Проблема:
В Hyper-V в графическом интерфейсе отсутствует возможность объединения серверов в группы для удобства управления.

Решение:
В решении данной проблемы поможет функционал PowerShell. ❤️

Существуют два типа групп:
VMCollectionType - группа виртуальных машин;
ManagementCollectionType - группа управления (корневая группа).

Создание корневой группы:
New-VMGroup -Name TEST -GroupType ManagementCollectionType
New-VMGroup -Name PRODUCTION -GroupType ManagementCollectionType

Создание локальной группы:
New-VMGroup -Name DC -GroupType VMCollectionType
New-VMGroup -Name EXCHANGE-P -GroupType VMCollectionType
New-VMGroup -Name LINUX-P -GroupType VMCollectionType
New-VMGroup -Name LINUX-T -GroupType VMCollectionType

Включение локальной группы в корневую:
Add-VMGroupMember -VMGroup (Get-VMGroup PRODUCTION) -VMGroupMember (Get-VMGroup DC)
Add-VMGroupMember -VMGroup (Get-VMGroup PRODUCTION) -VMGroupMember (Get-VMGroup EXCHANGE-P)
Add-VMGroupMember -VMGroup (Get-VMGroup PRODUCTION) -VMGroupMember (Get-VMGroup LINUX-P)
Add-VMGroupMember -VMGroup (Get-VMGroup TEST) -VMGroupMember (Get-VMGroup LINUX-T)

Включение виртуальных машин в локальную группу:
Add-VMGroupMember -VMGroup (Get-VMGroup DC) -VM (Get-VM TMNSV0010)
Add-VMGroupMember -VMGroup (Get-VMGroup DC) -VM (Get-VM TMNSV0020)
Add-VMGroupMember -VMGroup (Get-VMGroup EXCHANGE-P) -VM (Get-VM TMNSV0005)
Add-VMGroupMember -VMGroup (Get-VMGroup EXCHANGE-P) -VM (Get-VM TMNSV0015)
Add-VMGroupMember -VMGroup (Get-VMGroup LINUX-P) -VM (Get-VM TMNSV0012)
Add-VMGroupMember -VMGroup (Get-VMGroup LINUX-P) -VM (Get-VM TMNSV0014)
Add-VMGroupMember -VMGroup (Get-VMGroup LINUX-T) -VM (Get-VM TMNSV0047)

Посмотреть список виртуальных машин на хосте и принадлежность к группе:
Get-VM | ft Name, Groups -AutoSize

Посмотреть список виртуальных машин в указанной группе с VMCollectionType:
Get-VMGroup -Name LINUX-P

Посмотреть список групп VMCollectionType  входящих в ManagementCollectionType, со списком виртуальных машин:
Get-VMGroup -Name PRODUCTION | Select-Object -ExpandProperty VMGroupMembers

Примеры использования:

Запуск виртуальных машин в группе:
Start-VM -VM (Get-VMGroup EXCHANGE).VMMembers

Отключение на контроллерах домена сервиса интеграции синхронизации времени:
(Get-VMGroup DC).VMMembers | Get-VMIntegrationService -Name “Time Synchronization” | Disable-VMIntegrationService

понедельник, 8 апреля 2019 г.

Проверка соответствия ''железа'' для Hyper-V.

Требования к ''железу''.

Обязательный функционал CPU для работы Hyper-V:
- Поддержка Intel VT или AMD-V;
- 64-битный CPU (SLAT, second-level address translation);
- Поддержка Data Execution Prevention.

Требования к оперативной памяти:
- Минимум 4 ГБ ОЗУ.

Подробнее о требованиях для работы Hyper-V: Прочитать


Проверка соответствия требований для Hyper-V в Windows.

1. С использованием данных при исполнении в CMD с помощью systeminfo:

PS C:\pwsh>  Systeminfo | select-string -pattern "виртуальной","Виртуализация","Преобразование","предотвращение"

Подробнее о Select-String: Прочитать

Пример вывода:



Требования Hyper-V:
Расширения режима мониторинга виртуальной машины: Да
Виртуализация включена во встроенном ПО: Да
Преобразование адресов второго уровня: Да
Доступно предотвращение выполнения данных: Да

или

Hyper-V Requirements:
VM Monitor Mode Extensions: Yes
Virtualization Enabled in Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes


2. Через стороннюю утилиту Coreinfo от Марка Руссиновича: Скачать

Переходим в директорию с утилитой и запускаем команду с ключом:

PS C:\TEMP\Coreinfo> coreinfo.exe -v