Администрирование
26
Ноя
0

Настройка «тонких» параметров развертывания CRM с помощью PowerShell

Помимо манипуляций с данными (которые мы рассматривали в нескольких прошлых статьях), с помощью PowerShell можно производить тонкую настройку конфигурации CRM. Большинство этих специфичных параметров хранится в таблице DeploymentProperties БД MSCRM_CONFIG и никакого пользовательского интерфейса для доступа к ним MS не предоставляет.

Менять их можно через .Net, ансапортно через БД, а также существуют некоторые сторонние утилиты обладающие графическим интерфейсом. Но трушные администраторы предпочитают командную строку 🙂

Для изменения к этих параметров оснастка Microsoft.Crm.Powershell предоставляет два Cmdlet’а:

  • Set-CrmAdvancedSetting
  • Set-CrmSetting

посмотрим, что с их помощью можно сделать… Но сначала нужно подключить одну библиотеку…

Настройка

Выполнят скрипты изменяющие конфигурацию сервера CRM необходимо под ролью администратора развертывания. Проще всего это сделать с самого CRM сервера. Для этого достаточно добавить оснастку Microsoft.Crm.Powershell в текущий сеанс PowerShell следующей командой (сама оснастка была зарегистрирована во время установки CRM сервера):

Add-PSSnapin Microsoft.Crm.Powershell

Если же Вы хотите запускать такие скрипты удаленно, то необходимо сделать следующее:

  • Скопируйте на локальный в папку текущего пользователя компьютер с сервера CRM из папки Program Files\ Microsoft Dynamics CRM \tools три файла:
    • Microsoft.Crm.PowerShell.dll
    • Microsoft.Crm.PowerShell.dll-Help.xml
    • Microsoft.Crm.PowerShell.Strings.dll
  • Выполните следующий скрипт, чтобы добавить cmdlet’ы в текущий сеанс:
    Import-Module .\Microsoft.Crm.PowerShell.dll

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

После этого можно писать полезные скрипты.

Для получения справки по cmdlet’ам выполните следующий скрипт:

Get-Help <CrmCmdletName>

Или более подробный:

Get-Help <CrmCmdletName> -full

А список всех доступных Cmdlet’ов модуля Microsoft.Crm.PowerShell можно получить следующей командой:

Get-Command -Module "Microsoft.Crm.PowerShell"


Set-CrmAdvancedSetting

Управляет кучей всяких свойств CRM, которые подразделяются на четыре вида. Set-CrmAdvancedSetting принимает на входе конфигурационный объект, который содержит называние изменяемого свойства и его значение.

С полным перечнем этих свойств можно ознакомиться на MSDN:

А теперь посмотрим (на примере локального сервера), как изменить пару свойств:

  • Разрешаем сохранять учетные данные пользователя (логин/пароль) без использования SSL:
    $itemSetting = new-object ‘System.Collections.Generic.KeyValuePair[String,Object]'("AllowCredentialsEntryViaInsecureChannels",1)
    $configEntity = New-Object "Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity"
    $configEntity.LogicalName="Deployment"
    $configEntity.Attributes = New-Object "Microsoft.Xrm.Sdk.Deployment.AttributeCollection"
    $configEntity.Attributes.Add($itemSetting)
    Set-CrmAdvancedSetting -Entity $configEntity
    
  • Разрешение подключать почтовый сервер без использования SSL:
    $itemSetting = new-object 'System.Collections.Generic.KeyValuePair[String,Object]'("ECAllowNonSSLEmail",1)
    $configEntity = New-Object "Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity"
    $configEntity.LogicalName="Deployment"
    $configEntity.Attributes = New-Object "Microsoft.Xrm.Sdk.Deployment.AttributeCollection"
    $configEntity.Attributes.Add($itemSetting)
    Set-CrmAdvancedSetting -Entity $configEntity
    

Чтобы получить значение какого-либо свойства выполните такой запрос:

(Get-CrmAdvancedSetting -ConfigurationEntityName "Deployment" -Setting "AllowCredentialsEntryViaInsecureChannels").Attributes


Set-CrmSetting

С Set-CrmSetting работать проще, поскольку он вносит изменения через свойства следующих классов:

Название класса Описание
AsyncSettings Настройка параметров асинхронных заданий.
ClaimsSettings Настройка claims-аутентификации.
CustomCodeSettings Настройки выполнения кастомного кода.
DashboardSettings Настройки панелей мониторинга.
DupSettings Настройка Правил поиска дубликатов.
EtmSettings Содержит параметры Enterprise Transaction Monitor (ETM).
IfdSettings Параметры подключения по IFD.
ImportSettings Управление импортом данных.
MarketplaceSettings Содержит параметры для использования Marketplace.
MonitoringSettings Настройка Monitoring Service.
MultiEntityQuickFindSettings Параметры кросс-объектного поиска.
QuickFindSettings Параметры работы быстрого поиска.
ServerSideSyncACTSettings Управление серверной синхронизацией для Организаций, Контактов и Задач.
ServerSideSyncEmailSettings Управление серверной синхронизацией электропочты.
ServerSideSyncQueueSettings Управление серверной синхронизацией Очередей.
SqmSettings Параметры SQM.
TeamSettings Параметры для автоматически создаваемых (системных) Групп доступа.
ThrottleSettings Настройка режима работы сервиса.
TraceSettings Управляет объемом трассировки.
WebAddressSettings Содержит адреса развертывания.
WorkflowSettings Управление общими параметрами Бизнес-процессов.
YammerSettings Параметры подключения к Yammer.

Полную информацию об этих настройках Вы можете получить на MSDN: https://msdn.microsoft.com/en-us/library/dn531194.aspx

А в качестве примера увеличим (для удаленного сервера) количество автоматически создаваемых для объектов шаблонов Групп доступа:

#1. Возвращяем настройик класса "TeamSettings"
$mycred = Get-Credential
$dwsurl = "http://crm2015/"
$setting = Get-Crmsetting -settingtype teamsettings -credential $mycred -dwsserverurl $dwsurl

#2. Выводим текущие параметры объекта $setting
$setting
 
#3. Меняем значение свойства MaxAutoCreatedAccessTeamsPerEntity
$setting.MaxAutoCreatedAccessTeamsPerEntity = 5
 
#4. Отправляем запрос на сервер
Set-Crmsetting -Setting $setting -credential $mycred -dwsserverurl $dwsurl
 
#5. Выводим значения свойств TeamSettings
Get-Crmsetting -settingtype teamsettings -credential $mycred -dwsserverurl $dwsurl


Комментарии (0)

*

code