Архив

Публикации с меткой ‘PowerShell’

Удаление сервера из консоли DPM 2016

10 октября 2017 Comments off

Если нужно удалить из консоли DPM уже не существующий сервер нужно выполнить следующею команду в DPM Management Shell

PS C:\Program Files\Microsoft System Center 2016\DPM\DPM\bin> Remove-ProductionServer.ps1 <DPM Server Name FQDN> <Protected Server Name FQDN>
WARNING: Connecting to DPM server: <DPM Server Name FQDN>
There is failure while removing production server
C:\Program Files\Microsoft System Center 2016\DPM\DPM\bin\Remove-ProductionServer.ps1 : DPM was unable to remove the protected computer <Protected Server Name> from one of the following groups:
1. Distributed COM users
2. DPMRADmTrustedMachines
3. MSDPMTrustedMachines
At line:1 char:1
+ Remove-ProductionServer.ps1 <DPM Server Name FQDN> <Protected Server Name FQDN> ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Remove-ProductionServer.ps1
 
Please remove <Protected Server Name> from the above groups.
PS C:\Program Files\Microsoft System Center 2016\DPM\DPM\bin>

После чего будет правильным удалить вручную из указаных выше групп.

Управление правами коннектора получения Exchange

13 февраля 2017 Comments off

По-умолчанию, поставив галку «Anonymous Users» на принимающий коннектор, вы тем самым разрешаете прохождение почты независимо от того, какой будет указан отправитель (разрешение ms-Exch-SMTP-Accept-Any-Sender).

Но, чтобы какой-нибудь анонимус мог отправить письмо куда-то наружу, используя ваш почтовый сервер, у вас должно быть разрешено на этом коннекторе прием любого получателя (разрешение ms-Exch-SMTP-Accept-Any-Recipient). Это разрешение по умолчанию не дается.

Другими словами, прием почты от любого отправителя разрешен по умолчанию (если транспорт настроен на работу с интернетом), а отправка любому отправителю (вне вашей организации) — запрещена. Т.е. транспорт увидит, что получатель находится не в его организации, и, т.к. нету у анонимуса ms-Exch-SMTP-Accept-Any-Recipient, то письмо будет отклонено.

Распишу для наглядности все варианты:

  • Анонимус отсылает из интернета письмо в вашу организацию — по-умолчанию — разрешено. если запретить прием писем из интернета от анонимуса, то к вам вообще перестанут ходить письма от других компаний.
  • Анонимус отсылает из вашей организации в вашу же организацию — по-умолчанию — разрешено. запретить можно, создав дополнительный коннектор и указав в нем локальные IP адрес.
  • Анонимус отсылает из интернета письмо в интернет, но используя ваш почтовый сервер — по-умолчанию запрещено.
  • Анонимус отсылает из вашей организации в интернет — по-умолчанию — запрещено, но можно разрешить (только через shell).
  • Читать далее…

    Categories: Exchange Tags: ,

    Автоматическая очистка базы WSUS

    20 апреля 2016 Comments off

    Скрипт из галереи на PowerShell для автоматической очистки базы и файлов WSUS
    Этот скрипт можно запускать через планировщик задач.

    [reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
    $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
    $cleanupScope = new-object Microsoft.UpdateServices.Administration.CleanupScope;
    $cleanupScope.DeclineSupersededUpdates		= $true       
    $cleanupScope.DeclineExpiredUpdates		= $true
    $cleanupScope.CleanupObsoleteUpdates		= $true
    $cleanupScope.CompressUpdates			= $true
    $cleanupScope.CleanupObsoleteComputers		= $true
    $cleanupScope.CleanupUnneededContentFiles	= $true
    $cleanupManager = $wsus.GetCleanupManager();
    $cleanupManager.PerformCleanup($cleanupScope);

    Опции:

    DeclineSupersededUpdates — Отклонить земененные обновления.
    DeclineExpiredUpdates — Отклонить просроченые обновления.
    CleanupObsoleteUpdates — Удалить из базы неиспользуемые обновления.
    CompressUpdates — Удалить из базы устаревшие ревизии обновлений.
    CleanupObsoleteComputers — удалить компьютеры которые не соединялись за последние 30 дней.
    CleanupUnneededContentFiles — Удаляет файлы отклоненных обновлений из папки WSUS.

    Categories: Windows Tags: ,

    Назначение членства в группе локальных администраторов с помощью SCCM

    10 февраля 2016 Comments off

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

    Для этого можно воспользоваться средствами SCCM.
    Создаем новый Configuration Items с именем, например, «Local Administrators Group Item».
    В нем создаем новый Settings c именем, например, «Set Local Administrators for Russian LIP»
    Setting type: Script
    Data type: Boolean

    assign-local-administrators-group-1

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

    Ротация логов IIS и Exchange

    3 апреля 2015 1 комментарий

    В один прекрасный день обнаружил что на системном томе сервера с установленным Exchange 2013 заканчивается место.
    Всему причиной оказались логи как самого Exchаnge (не путать с журналами транзакций) так и, в основном, логи IIS.

    Стандартной процедуры ротации логов в IIS не предусмотрено, поэтому воспользуемся небольшим скриптом на Powershell

    Get-ChildItem -Path 'C:\inetpub\logs\LogFiles\*' -Include *.log -Recurse | Where-Object {$_.LastWriteTime -le [datetime]::Today.AddDays(-30)} | Remove-Item -Confirm:$false
    Get-ChildItem -Path 'C:\Program Files\Microsoft\Exchange Server\V15\Logging\*' -Include *.log -Recurse | Where-Object {$_.LastWriteTime -le [datetime]::Today.AddDays(-30)} | Remove-Item -Confirm:$false
    Get-ChildItem -Path 'C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\*' -Include *.log -Recurse | Where-Object {$_.LastWriteTime -le [datetime]::Today.AddDays(-30)} | Remove-Item -Confirm:$false

    Первая строчка удаляет файлы с расширением *.log в папке «C:\inetpub\logs\LogFiles» и во всех вложеных папках которые не изменялись за последние 30 дней
    Вторая тоже самое в папке «C:\Program Files\Microsoft\Exchange Server\V15\Logging»

    Помещаем скрипт, например, в

    C:\Scripts\LogsRotation.ps1

    А в Tаsk Scheduler создаем задание выполнять каждый день

    powershell.exe C:\Scripts\LogsRotation.ps1

    В системе должен быть разрешен запуск неподписанных скриптов PowerShell

    Set-ExecutionPolicy remotesigned

    Скачать архив с скриптом и файлом импорта task Scheduler

    Categories: Exchange Tags: , , ,

    Восстановление удаленных объектов из корзины Active Directory

    2 апреля 2015 Нет комментариев

    Перед тем как мы сможем что-то восстановить необходимо включить Active Directory Recycle Bin

    Для включения корзины Active Directory необходимо чтобы режим работы леса был не ниже Windows Server 2008 R2.

    Включение корзины Active Directory для contoso.com

    Enable-ADOptionalFeature -Identity ‘CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=contoso,DC=com’ –Scope ForestOrConfigurationSet –Target ‘contoso.com’

    Теперь легко можно восстанавливать объекты AD со всеми атрибутами удаленные за последние 180 дней

    Восстановление отдельной учетной записи

    Get-ADObject -Filter {displayName -eq "Zalozny" -and isDeleted -eq $True} -IncludeDeletedObjects
    Get-ADObject -Filter {displayName -eq "Zalozny" -and isDeleted -eq $True} -IncludeDeletedObjects | Restore-ADObject

    Восстановление удаленного OU

    Get-ADObject -ldapFilter:"(msDS-LastKnownRDN=Finance_Department)" –IncludeDeletedObjects | Restore-ADObject

    Восстановление всех объектов из удаленного OU

    Get-ADObject -SearchBase "CN=Deleted Objects,DC=contoso,DC=com" -Filter {lastKnownParent -eq "OU=Finance_Department,DC=contoso,DC=com"} -IncludeDeletedObjects | Restore-ADObject

    Работа с правилами Exchange

    2 апреля 2015 Нет комментариев

    Просмотреть правила по ящику

    Get-InboxRule -mailbox Alexander.Zalozny@zalozny.com.ua |fl

    Найти все правила с ошибкой и удалить их

    Get-Mailbox  -ResultSize unlimited | Get-InboxRule -ErrorAction:SilentlyContinue | where-object{$_.InError -eq $True} | Remove-InboxRule -Confirm:$False

    Найти все правила с переадресацией и удалить их

    Get-Mailbox  -ResultSize unlimited | Get-InboxRule -ErrorAction:SilentlyContinue -WarningAction:SilentlyContinue | where-object{$_.ForwardTo -ne $null} | Remove-InboxRule -Confirm:$False

    Запрос поиска правила с переадресацией с более подробным выводом

    ForEach ($m in (Get-Mailbox -ResultSize Unlimited)) { Get-InboxRule -Mailbox $m.DistinguishedName | where{$_.ForwardTo } | fl MailboxOwnerID,Name,ForwardTo }

    Запрос поиска правила с редиректом с более подробным выводом

    ForEach ($m in (Get-Mailbox -ResultSize Unlimited)) { Get-InboxRule -Mailbox $m.DistinguishedName | where {$_.ReDirectTo} | fl MailboxOwnerID,Name,RedirectTo
    Categories: Exchange Tags: ,

    Полезные команды Exchange Management Shell

    2 апреля 2015 Нет комментариев

    Полезные команды Exchange Management Shell

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

    Categories: Exchange Tags: ,

    Установка .NET Framework 3.5 на Windows Server 2012

    30 марта 2015 Нет комментариев

    Монтируем ISO с дистрибутивом ОС (у меня диск D:).
    Выполняем команды:
    CMD

    dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess

    где
    /Online – означает, что нужно обновлять текущую ОС, а не образ
    /enable-feature /featurename:NetFX3 /all – необходимо установить платформу .NET Framework 3.5 со всеми функциями
    /Source – путь к каталогу дистрибутива Windows, в котором находятся необходимые компоненты
    /LimitAccess – предотвратить обращение к узлу Windows Update

    То же самое в PowerShell

    Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs
    Categories: Windows Tags: ,