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

powershell

Как сделать автоматическое назначение тегов бэкапа VMware по типу ОС через PowerCLI

Описание:
Скрипт на PowerShell/PowerCLI для VMware vCenter, который автоматически расставляет теги резервного копирования на виртуальные машины в зависимости от их имени и гостевой ОС. Включённые Windows-ВМ с доменными окончаниями (a.ru, b.ru, d.ru) получают свой отдельный тег бэкапа для каждого заказчика, все прочие включённые Linux-ВМ помечаются общим тегом «Linux Backup», а ВМ с тегом-исключением автоматически лишаются всех тегов бэкапа. Все параметры (адрес vCenter, датацентр, исключаемый кластер, названия тегов и масок имён) вынесены в один блок настроек в начале файла — менять логику скрипта не нужно. Есть встроенный безопасный тестовый режим: перед реальным изменением тегов скрипт может просто показать таблицу с планом … Читать далее

Как автоматически архивировать почтовые ящики Exchange и безопасно удалять отключенные учетные записи Active Directory с помощью PowerShell

описание скрипта архивации почтовых ящиков Exchange и удаления отключенных пользователей Active Directory

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

Скрипт предназначен для работы в инфраструктуре Microsoft Active Directory и Microsoft Exchange. Он находит отключенные учетные записи пользователей, которые не изменялись более заданного количества дней, выполняет экспорт почтовых ящиков и архивов в формат PST, создает резервную … Читать далее

Как развернуть пользовательского представления Event Viewer «Cisco Systems, Inc. ICM Custom View» на серверах в ad

Краткое описание

Скрипт автоматически развёртывает пользовательское представление (Custom View) в Windows Event Viewer на выбранных серверах. Представление позволяет централизованно просматривать события компонентов Cisco ICM, отфильтрованные по необходимым источникам журналов, без ручной настройки каждого сервера.

Скрипт поддерживает автоматический поиск серверов в Active Directory, выбор конкретных серверов или интерактивный режим с выбором из списка. Развёртывание выполняется удалённо через PowerShell Remoting (WinRM) с сохранением стандартных разрешений файлов Windows.


Назначение

Используется для автоматизации создания единого пользовательского представления журналов событий Cisco ICM на серверах инфраструктуры B и X.

После выполнения на сервере создаётся файл:

%ProgramData%\Microsoft\Event Viewer\Views\CiscoSystemsIncICMCustomView.xml

который автоматически отображается в разделе … Читать далее

Как найти и безопасно удалить старые .bak/.trn файлы бэкапов MSSQL с помощью PowerShell

Описание

Готовый PowerShell-скрипт для администраторов баз данных и системных администраторов Windows, который помогает держать диски с бэкапами MSSQL в порядке. Скрипт находит файлы резервных копий (.bak, .trn, .dif) старше заданного количества дней, выводит их в виде таблицы с путём, датой изменения и размером (отсортировано от самых больших к самым маленьким), сохраняет отчёт в CSV и, при необходимости, удаляет найденные файлы с записью в лог.

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

  • поиск бэкапов старше N дней на любом указанном диске или в папке;
  • вывод результатов с сортировкой по размеру файла;
  • сохранение отчёта в CSV для аудита перед удалением;
  • гибкий список папок-исключений
Читать далее

Как найти GPO, в которой настроен нужный параметр политики, с помощью PowerShell

В крупном домене Active Directory количество групповых политик (GPO) может исчисляться десятками и сотнями. Когда нужно найти, в какой именно политике задан конкретный параметр — например, «Interactive logon: Machine inactivity limit» — просматривать каждый GPO вручную через консоль управления групповыми политиками (GPMC) слишком долго. Гораздо быстрее сделать это скриптом на PowerShell.

Суть подхода

Модуль GroupPolicy предоставляет командлет Get-GPOReport, который для любой политики может сформировать подробный XML-отчёт со всеми настроенными в ней параметрами — от политик безопасности до административных шаблонов. Идея скрипта проста:

  1. Получить список всех GPO в домене (Get-GPO -All).
  2. Для каждой политики сформировать XML-отчёт (Get-GPOReport
Читать далее

Как делегировать права на редактирование gpo windows группе безопасности.

задача создать группу и дать права на редактирования gpo

<#
.SYNOPSIS
    Настраивает права группы для работы с GPO:
    - создание новых GPO;
    - редактирование существующих GPO (всех или точечно выбранных);
    - линковка GPO к OU (с наследованием на дочерние OU).

.DESCRIPTION
    ЧАСТЬ 1 (создание новых GPO):
        Добавляет группу в встроенную группу AD "Group Policy Creator Owners".
        Участники этой группы могут создавать новые GPO и автоматически
        становятся их владельцами/редакторами (но только тех, что создали
        сами - см. примечание ниже).

    ЧАСТЬ 2 (редактирование существующих GPO):
        Перебирает GPO в домене, проверяет, есть ли у группы право
        редактирования, и если нет - выдаёт его 
Читать далее

Как удалить группы из коллекции rds rdp windows

Ошибки на ферме

Error: Exception calling «Translate» with «1» argument(s): «Some or all identity references could not be translated

Unable to retrieve the session collection properties. Some or all identity references could not be translated.

Failed: Unable to retrieve the session collection properties. Some or all identity references could not be translated.

Не публикуется  новое приложение в коллекцию rds rdp windows

Сначала проверим коллекции .\Check-RDSAccessGroups.ps1 -ConnectionBroker «HWRDCB02.adminbd.ru»

<#
.SYNOPSIS
    Аудит групп доступа RDS (Session Collection + RemoteApp) с проверкой их наличия в AD.
 
.DESCRIPTION
    Скрипт перебирает все Session Collections на RDS-ферме, получает список групп,
    назначенных на саму коллекцию и на 
Читать далее

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

Введение 
В Exchange Server по умолчанию существует встроенная роль Transport Rules, которая предоставляет полный доступ к управлению правилами обработки почты (создание, изменение, удаление, импорт/экспорт).
Назначение этой роли сотрудникам службы поддержки или аудиторам создает серьезный риск информационной безопасности: злоумышленник или невнимательный сотрудник может случайно перенаправить почту руководства или отключить критически важные правила фильтрации.
Поскольку встроенной роли «Только чтение» для транспортных правил не существует, мы создадим её самостоятельно, скопировав базовую роль и удалив из неё все командлеты, отвечающие за модификацию данных.
Предварительные требования 
  1. Доступ к Exchange Management Shell (EMS) с правами роли Organization Management.
  2. Заранее созданная в Active Directory группа
Читать далее

Как копировать данных между 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) % 
Читать далее
Яндекс.Метрика