Перейти к содержимому

Как настроить права «Только чтение» для транспортных правил в Exchange Server (2016/2019)

Оглавление:

Введение: Почему стандартных ролей недостаточно
Предварительные требования
Шаг 1. Анализ стандартной роли Transport Rules
Шаг 2. Создание кастомной роли на основе базовой
Шаг 3. Удаление опасных командлетов (прав на запись)
Шаг 4. Проверка итогового списка разрешений
Шаг 5. Создание группы ролей и привязка к пользователям AD
Шаг 6. Проверка назначения прав
Важные нюансы: проверка через веб-интерфейс (ECP)

Введение {#введение}

В Exchange Server по умолчанию существует встроенная роль Transport Rules, которая предоставляет полный доступ к управлению правилами обработки почты (создание, изменение, удаление, импорт/экспорт).
Назначение этой роли сотрудникам службы поддержки или аудиторам создает серьезный риск информационной безопасности: злоумышленник или невнимательный
Читать далее

Как копировать данных между SQL Server с фильтром по дате при помощи PowerShell и dbatools

Задача: перенести данные из таблицы на одном сервере SQL Server на другой, оставив только записи за последние N месяцев, с автоматическим созданием структуры таблицы на приёмнике.

Решение: PowerShell 7 + модуль dbatools. Скрипт сам определяет столбцы с датой, предлагает выбрать нужный (если их несколько), формирует фильтр и выполняет высокопроизводительное копирование через SqlBulkCopy.

Возможности скрипта

  • ✅ Автоматическое создание таблицы на целевом сервере (если её нет).

  • ✅ Очистка целевой таблицы перед вставкой (опционально).

  • ✅ Сохранение значений IDENTITY (опционально).

  • ✅ Выбор столбца для фильтрации, если в таблице несколько дата-столбцов.

  • ✅ Настройка периода (например, последние 3, 6, 12 месяцев).

  • ✅ Контроль производительности

Читать далее

Как удалить встречу целый день у всех в календаре exchange

задача у всех удалить встречу созданную  ранее  

Add-Type -Path "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Microsoft.Exchange.WebServices.dll"

# ===== УЧЕТНЫЕ ДАННЫЕ =====
$AdminEmail = "mosk@adminbd.ru"
$Password = "pass"
$Creds = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials($AdminEmail, $Password)

# ===== ПОДКЛЮЧЕНИЕ К EWS =====
$TimeZoneInfo = [System.TimeZoneInfo]::Utc
$Service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2016, $TimeZoneInfo)
$Service.Credentials = $Creds
$Service.Url = New-Object Uri("https://mx.adminbd.ru/EWS/Exchange.asmx")

# ===== СПИСОК ПОЛЬЗОВАТЕЛЕЙ =====
#$Users = @("user")
# Для всех ящиков раскомментируйте:
 $Users = Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -ne "RoomMailbox"} | Where-Object { $_.Database -ne "Service" } | Select-Object -ExpandProperty PrimarySmtpAddress

# ===== ПАРАМЕТРЫ ПОИСКА =====
$Subject = "Занято весь день"
$startDate = (Get-Date).AddDays((3 - (Get-Date).DayOfWeek + 7) % 
Читать далее

Как сделать Стресс-тест HADR_SYNC_COMMIT и PAGELATCH_UP в SQL Server: PowerShell-скрипт с мониторингом и автоочисткой

  1. Выбор баз – подключается к указанному экземпляру SQL Server, выводит список пользовательских баз в Out-GridView для множественного выбора.
  2. Подготовка окружения – принудительно удаляет/пересоздаёт тестовую таблицу dbo.hadr_stress_test в каждой выбранной базе и глобальную таблицу ##hadr_stress_counter в tempdb.
  3. Генерация нагрузки
    • HADR_SYNC_COMMIT: запускает параллельные потоки INSERT с пакетной вставкой. При синхронном режиме AG возникает ожидание подтверждения от вторичных реплик.
    • PAGELATCH_UP: несколько десятков потоков обновляют одну строку в tempdb, вызывая конкуренцию за latch-и страниц выделения (PFS/SGAM).
  4. Контроль роста – отдельные фоновые потоки выполняют TRUNCATE TABLE каждые 15 секунд с механизмом повторных попыток при блокировках.
  5. Мониторинг в реальном времени – каждые
Читать далее

Как пересоздать индексы mssql в новую файловую группу с помощью PowerShell и dbatools с логированием и бэкапом ver 2

Первая версия

Перенос индексов SQL Server в другую файловую группу — задача, требующая высокой точности и контроля. Ручное выполнение связано с риском потери метаданных, длительными блокировками и отсутствием аудита изменений. В статье представлен готовый к эксплуатации PowerShell-скрипт, который полностью автоматизирует процесс безопасного пересоздания индексов. Решение поддерживает гибкую настройку целевой файловой группы (вплоть до выбора ФГ по умолчанию для каждой БД), автоматически генерирует резервные копии скриптов CREATE INDEX перед изменением, ведёт логирование в файл и системную SQL-таблицу, пропускает индексы со встроенными ограничениями (FULLTEXT, XML, Spatial) и по завершении проводит финальную сверку фактического расположения всех индексов. Дополнительно реализованы автоматическая очистка старых артефактов,
Читать далее

Как добавить всем пользователем событие на целый день в календаре exchange 2016 через EWS ver2.

первый вариант 

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

Add-Type -Path "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Microsoft.Exchange.WebServices.dll"

# Учетные данные администратора
$AdminEmail = "moskv@adminbd.ru"
$Password = "pass"
$Creds = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials($AdminEmail, $Password)

# Подключение к службе EWS
$TimeZoneInfo = [System.TimeZoneInfo]::Utc
$Service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2016, $TimeZoneInfo)
$Service.Credentials = $Creds
$Service.Url = New-Object Uri("https://mx.adminbd.ru/EWS/Exchange.asmx")

# ===== СПИСОК ПОЛЬЗОВАТЕЛЕЙ =====
# Вариант 1: вручную заданные адреса (активен по умолчанию)
$Users = @("user@adminbd.ru")

# Вариант 2: все почтовые ящики организации (раскомментируйте, закомментировав вариант 1)
# $Users =Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -ne "RoomMailbox"} | Where-Object { 
Читать далее

Как сделать автоматическую проверку и восстановление VHDX‑дисков FSLogix (NTFS) для RDS‑сессий

Назначение

Скрипт PowerShell предназначен для диагностики и автоматического исправления ошибок файловой системы на VHDX‑дисках FSLogix. Он выявляет пользователей, у которых активна RDS‑сессия, но профиль не смонтирован (том с меткой Profile-ИмяПользователя отсутствует), затем находит соответствующий VHDX‑файл в заданных сетевых хранилищах, монтирует его, проверяет с помощью chkdsk /f и при необходимости восстанавливает целостность NTFS.

Основные возможности

  • 🔎 Автоматический поиск проблемных сессий через RD Connection Broker.

  • 📁 Поддержка нескольких хранилищ VHDX (UNC‑пути).

  • 🧪 Безопасное монтирование образов без присвоения буквы (буква назначается временно только для проверки).

  • 🛠 Исправление ошибок NTFS с помощью chkdsk /f (режим можно отключить).

  • 📄 Подробное логирование и CSV‑отчёт о состоянии

Читать далее

Как сделать «Автоматическую установку Cisco Secure Client, .NET 8 и VMware Horizon Client с помощью PowerShell»

Задача сделать автоматическую установку на клиентах вне домена

  • Проверяет доступность серверов vdi.adminbd.ru и so.adminbd.ru.
  • Устанавливает/настраивает Cisco Secure Client (с профилем link_adminbd_ru.xml, ярлыком на общем рабочем столе и preferences.xml с BlockUntrustedServers=false).
  • Устанавливает .NET 8 Desktop Runtime (при необходимости).
  • Устанавливает VMware Horizon Client с параметром VDM_Server=vdi.adminbd.ru.
  • Логирует все действия в %TEMP%\vdi-client-setup.log.
  • Требует права администратора (автоматически перезапускается с повышением).
  • После завершения всех операций перезагружает компьютер (с подтверждением пользователя).
#requires -Version 3.0

<#
.SYNOPSIS
    Автоматическая установка и запуск VMware Horizon Client.
.DESCRIPTION
    Скрипт проверяет доступность сервера so.admindb.ru (репозиторий установщиков),
    при необходимости устанавливает Cisco Secure Client, .NET 8 Runtime
    и VMware Horizon Client, после чего 
Читать далее

Как восстановить базы данных SQL Server автоматически с уведомлениями по email с помощью PowerShell

Описание:
В статье представлен готовый PowerShell-скрипт для автоматического восстановления баз данных SQL Server из резервных копий. Скрипт использует модуль dbatools, выполняет параллельное восстановление нескольких баз, автоматически определяет пути для файлов данных и логов, а также отправляет подробные email-отчёты о ходе и результатах операции. Подходит для регулярных задач обновления тестовых сред или восстановления после сбоев. Так же добавляет к имени базы DEV

# ======================================================================
# Автоматическое восстановление баз данных с уведомлениями по email
# ======================================================================
# Требуется: модуль dbatools, доступ к бэкапам и целевому SQL Server
# ======================================================================

# Подключаем модуль dbatools
Import-Module dbatools -ErrorAction Stop

# === Параметры (настраиваемые) ===
Читать далее

Как пересоздать индексы mssql в новую файловую группу с помощью PowerShell и dbatools с логированием и бэкапом.

Описание:
Представляю вашему вниманию PowerShell-скрипт для автоматизации сложной процедуры переноса индексов между файловыми группами в Microsoft SQL Server.
Скрипт решает задачу пересоздания индексов в целевой файловой группе (или ФГ по умолчанию) с учетом всех «подводных камней»: он автоматически пропускает индексы, связанные с полнотекстовым поиском или XML-индексами, создаёт резервные копии (скрипты CREATE) для каждого изменяемого индекса и ведёт детальный лог как в файловой системе, так и в таблице базы данных.

Ключевые возможности:

  • Избирательность: Пересоздаёт только те индексы, которые физически находятся не в целевой файловой группе.

  • Безопасность: Автоматическое создание CREATE-скриптов для быстрого отката. Очистка старых бэкапов (>7 дней).

  • Интеллектуальность: Пропуск индексов

Читать далее
Яндекс.Метрика