Поделиться через


Командлеты PowerShell для режима интеграции служб Reporting Services с SharePoint

Область применения: SQL Server Reporting Services (2016) SharePoint Сервер отчетов Power BI ❌

Сведения о содержимом, связанном с предыдущими версиями служб SQL Server Reporting Services (SSRS), см. в статье "Что такое службы SQL Server Reporting Services?

При установке служб SQL Server 2016 Reporting Services в режиме интеграции с SharePoint устанавливаются командлеты PowerShell для поддержки серверов отчетов в режиме интеграции с SharePoint. Командлеты охватывают три категории функциональных возможностей.

  • Установка общей службы и прокси-сервера Reporting Services для SharePoint.

  • Подготовка приложений служб Reporting Services и связанных с ними прокси-серверов и управление ими.

  • Управление компонентами служб Reporting Services, например расширениями и ключами шифрования.

Примечание.

Интеграция служб Reporting Services с SharePoint больше не доступна после выхода SQL Server 2016.

Обзор командлетов

Чтобы запустить командлеты, необходимо открыть оболочку управления SharePoint. Можно также использовать редактор графического пользовательского интерфейса, который включен в Microsoft Windows, интегрированная среда скриптов Windows PowerShell (ISE). Дополнительные сведения см. в разделе Запуск Windows PowerShell на Windows Server. В следующих сводах командлетов ссылки на приложение-службу "базы данных" ссылаются на все базы данных, созданные и используемые приложением службы Reporting Services. Это включает базы данных конфигурации, предупреждений и временные базы данных.

Если при вводе примеров PowerShell отображается сообщение об ошибке, аналогичное следующему:

  • Install-SPRSService: термин "Install-SPRSService" не распознается как
    имя командлета, функции, файла скрипта или действующей программы. Проверьте орфографию имени или в случае включения пути проверьте правильность указания пути и повторите попытку.

Возникает одна из следующих проблем.

  • Режим SharePoint служб Reporting Services не установлен, поэтому командлеты Служб Reporting Services не установлены.

  • Команда PowerShell была выполнена в Windows PowerShell или Windows PowerShell ISE, а не в оболочке управления SharePoint. Используйте оболочку управления SharePoint или добавьте оснастку SharePoint к окну Windows PowerShell с помощью следующей команды:

    Add-PSSnapin Microsoft.SharePoint.PowerShell  
    

Дополнительные сведения см. в статье "Использование Windows PowerShell для администрирования SharePoint 2013".

Открытие командной консоли SharePoint и выполнение командлетов

  1. Нажмите Пуск.

  2. Выберите группу продуктов Microsoft SharePoint.

  3. Выберите оболочку управления SharePoint.

Чтобы просмотреть справку командной строки для командлета, используйте команду PowerShell Get-Help в командной строке PowerShell. Например:

Get-Help Get-SPRSServiceApplicationServers

Командлеты общей службы и прокси-серверов

В приведенной ниже таблице содержатся командлеты PowerShell для общих служб Reporting Services, интегрированных с SharePoint.

Командлет Description
Install-SPRSService Устанавливает и регистрирует либо удаляет общие службы Reporting Services. Это действие можно выполнить только на компьютере с установкой служб SQL Server Reporting Services в режиме SharePoint. При установке выполняются две операции.

— Службы Reporting Services устанавливаются в ферме.

— Экземпляр служб Reporting Services устанавливается на текущем компьютере.

При удалении выполняются две операции.

— Службы Reporting Services удаляются с текущего компьютера.

— Службы Reporting Services удаляются из фермы.



Появится предупреждение, если в ферме установлены другие компьютеры, на которых установлена служба Reporting Services, или если в ферме по-прежнему работают приложения служб Reporting Services.
Install-SPRSServiceProxy Устанавливает и регистрирует или удаляет прокси-сервер службы Reporting Services на ферме SharePoint.
Get-SPRSProxyUrl Возвращает URL-адреса для доступа к службе Reporting Services.
Get-SPRSServiceApplicationServers Возвращает все серверы в локальной ферме SharePoint, на которых имеется общая установка службы Reporting Services. Этот командлет полезен при обновлении служб Reporting Services для определения того, на каких серверах выполняется общая служба, в связи с чем требуется обновление.

Командлеты приложения службы и прокси-серверов

В приведенной ниже таблице содержатся командлеты PowerShell для приложений служб Reporting Services и связанных с ними прокси-серверов.

командлет Description
Get-SPRSServiceApplication Возвращает один или несколько объектов приложений служб Reporting Services.
New-SPRSServiceApplication Создание нового приложения службы Reporting Services и связанных баз данных.

Параметр входа в систему. Указывает, использует ли сервер отчетов учетную запись пула приложений SSRS или вход SQL Server для доступа к базе данных сервера отчетов. Допустимые значения:

0 Проверка подлинности Windows

1 SQL Server

2 Учетная запись пула приложений (по умолчанию)
Remove-SPRSServiceApplication Удаляет указанное приложение службы Reporting Services. Этот командлет также удаляет связанные базы данных.
Set-SPRSServiceApplication Изменяет свойства существующего приложения службы Reporting Services.
New-SPRSServiceApplicationProxy Создание прокси-сервера приложения службы Reporting Services.
Get-SPRSServiceApplicationProxy Возвращает одно или несколько существующих приложений службы Reporting Services.
Dismount-SPRSDatabase Отключает базы данных для приложения служб Reporting Services.
Remove-SPRSDatabase Удаляет базы данных для приложения служб Reporting Services.
Set-SPRSDatabase Задает свойства баз данных, связанных с приложением служб Reporting Services.
Mount-SPRSDatabase Подключает базы данных для приложения служб Reporting Services.
New-SPRSDatabase Создает базы данных приложения службы для указанного приложения служб Reporting Services.
Get-SPRSDatabaseCreationScript Выводит на экран скрипт создания базы данных для приложения служб Reporting Services. Затем скрипт можно запустить в среде SQL Server Management Studio.
Get-SPRSDatabase Возвращает одну или несколько баз данных приложения службы Reporting Services. Используйте команду, чтобы получить идентификатор базы данных приложения-службы, чтобы использовать командлет Set-SPRSDatabase для изменения свойств, например querytimeout. См. пример, приведенный в этой статье, Получение и задание свойств базы данных приложения Службы Reporting Service.
Get-SPRSDatabaseRightsScript Выводит на экран скрипт определения прав базы данных для приложения служб Reporting Services. Он запрашивает нужный пользователь и базу данных, а затем возвращает transact SQL, который можно запустить для изменения разрешений. Затем этот скрипт можно запустить в среде SQL Server Management Studio.
Get-SPRSDatabaseUpgradeScript Выводит скрипт обновления базы данных на экран. Скрипт обновляет базы данных приложений служб Reporting Services до версии базы данных текущей установки служб Reporting Services.

Командлеты пользовательской функциональности служб Reporting Services

Командлет Description
Update-SPRSEncryptionKey Обновляет ключ шифрования для указанного приложения службы Reporting Services и повторно шифрует его данные.
Restore-SPRSEncryptionKey Восстанавливает созданную ранее резервную копию ключа шифрования для приложения службы Reporting Services.
Remove-SPRSEncryptedData Удаляет зашифрованные данные для указанного приложения службы Reporting Services.
Backup-SPRSEncryptionKey Создает резервную копию ключа шифрования для указанного приложения службы Reporting Services.
New-SPRSExtension Регистрирует новый модуль для работы с приложением службы Reporting Services.
Set-SPRSExtension Задает свойства существующего модуля служб Reporting Services.
Remove-SPRSExtension Удаляет модуль из приложения службы Reporting Services.
Get-SPRSExtension Возвращает один или несколько модулей Reporting Services для приложения службы Reporting Services.

Допустимые значения:



Доставка

DeliveryUI

Render

Data

Безопасность

Проверка подлинности

EventProcessing

ReportItems

Автор

ReportItemDesigner

ReportItemConverter

ReportDefinitionCustomization
Get-SPRSSite Возвращает сайты SharePoint с учетом того, включена ли на них функция «ReportingService». По умолчанию возвращаются сайты, на которых включена функция «ReportingService».

Простые примеры

Возвращает список командлетов, содержащих в названии строку "SPRS". Этот список содержит полный список командлетов Служб Reporting Services.

Get-command -noun *SPRS*  

Или с немного более подробной информацией, переданной в текстовый файл с именем commandlist.txt.

Get-command -noun *SPRS* | Select name, definition | Format-List | Out-File c:\commandlist.txt  

Установка служб Reporting Services для SharePoint и прокси-сервера службы.

Install-SPRSService  
Install-SPRSServiceProxy  

Запустите службу Служб Reporting Services.

get-spserviceinstance -all |where {$_.TypeName -like "SQL Server Reporting*"} | Start-SPServiceInstance  

Введите следующую команду из командной консоли SharePoint, чтобы вернуть отфильтрованный список строк из файла журнала. Фильтры команд для строк, содержащих ssrscustomactionerror. В этом примере рассматривается файл журнала, созданный при установке rssharepoint.msi.

Get-content -path C:\Users\testuser\AppData\Local\Temp\rs_sp_0.log | select-string "ssrscustomactionerror"  

Подробные примеры

Помимо приведенных ниже примеров, см. раздел "Скрипт Windows PowerShell" в статье скрипт Windows PowerShell для шагов 1-4.

Создание приложения службы Reporting Services и прокси-сервера

Этот пример скрипта выполняет следующие задачи:

  1. Создайте приложение службы Reporting Services и прокси-сервер. В скрипте предполагается, что пул приложений "My App Pool" уже существует.

  2. Добавьте прокси-сервер в группу прокси-серверов по умолчанию

  3. Предоставьте приложению службы доступ к порту 80 базы данных содержимого веб-приложения. В скрипте предполагается, что сайт https://sitename уже существует.

# Create service application and service application proxy  
$appPool = Get-SPServiceApplicationPool "My App Pool"  
$serviceApp = New-SPRSServiceApplication "My RS Service App" -ApplicationPool $appPool  
$serviceAppProxy = New-SPRSServiceApplicationProxy -Name "My RS Service App Proxy" -ServiceApplication $serviceApp  
  
# Add service application proxy to default proxy group.  Any web application that uses the default proxy group will now be able to use this service application.  
Get-SPServiceApplicationProxyGroup -default | Add-SPServiceApplicationProxyGroupMember -Member $serviceAppProxy  
  
# Grant application pool account access to the port 80 web application's content database.  
$webApp = Get-SPWebApplication "https://sitename"  
$appPoolAccountName = $appPool.ProcessAccount.LookupName()  
$webApp.GrantAccessToProcessIdentity($appPoolAccountName)  
  

Проверка и обновление модуля доставки Reporting Services

В следующем примере скрипта PowerShell обновляется конфигурация модуля доставки электронной почты сервера отчетов для приложения службы с именем My RS Service App. Измените значения для SMTP-сервера (<email server name>) и псевдонима FROM электронной почты (<your FROM email address>).

$app=get-sprsserviceapplication -Name "My RS Service App"  
$emailCfg = Get-SPRSExtension -identity $app -ExtensionType "Delivery" -name "Report Server Email" | select -ExpandProperty ConfigurationXml   
$emailXml = [xml]$emailCfg   
$emailXml.SelectSingleNode("//SMTPServer").InnerText = "<email server name>"  
$emailXml.SelectSingleNode("//SendUsing").InnerText = "2"  
$emailXml.SelectSingleNode("//SMTPAuthenticate").InnerText = "2"  
$emailXml.SelectSingleNode("//From").InnerText = '<your FROM email address>'  
Set-SPRSExtension -identity $app -ExtensionType "Delivery" -name "Report Server Email" -ExtensionConfiguration $emailXml.OuterXml  

В приведенном выше примере, если вы не знаете точное имя приложения-службы, можно переписать первую инструкцию, чтобы получить приложение службы на основе поиска частичного имени. Например:

$app=get-sprsserviceapplication | where {$_.name -like " ssrs_testapp *"}  

Следующий скрипт возвращает текущие значения конфигурации для модуля доставки электронной почты сервера отчетов для приложения службы с именем "Приложение служб Reporting Services". Первый шаг задает значение переменной $app объекту приложения-службы с именем "My RS Service App"

Вторая инструкция получит расширение доставки "Электронная почта сервера отчетов" для объекта приложения-службы в переменной $app и выберите configurationXML.

$app=get-sprsserviceapplication -Name "Reporting Services Application"  
Get-SPRSExtension -identity $app -ExtensionType "Delivery" -name "Report Server Email" | select -ExpandProperty ConfigurationXml  

Вы также можете переписать предыдущие два оператора как одно:

get-sprsserviceapplication -Name "Reporting Services Application" | Get-SPRSExtension -ExtensionType "Delivery" -name "Report Server Email" | select -ExpandProperty ConfigurationXml  

Получение и задание свойств для базы данных приложения Reporting Services

Следующий пример сначала возвращает список баз данных и параметров, чтобы вы могли определить guid базы данных (идентификатор), который вы затем предоставите для настройки команды. Полный список параметров смотрите в Get-SPRSDatabase | format-list.

get-SPRSDatabase | select id, querytimeout,connectiontimeout, status, server, ServiceInstance   

Ниже приведен пример выходных данных. Определите идентификатор для базы данных, которую вы хотите изменить и используйте идентификатор в SET cmdlet.

  • Id : 56f8d1bc-cb04-44cf-bd41-a873643c5a14

    QueryTimeout : 120

    ConnectionTimeout : 15

    Status : Online

    Server : SPServer Name=uetestb01

    ServiceInstance : SPDatabaseServiceInstance

Set-SPRSDatabase -identity 56f8d1bc-cb04-44cf-bd41-a873643c5a14 -QueryTimeout 300  

Чтобы убедиться в том, что значение установлено, снова запустите GET cmdlet.

Get-SPRSDatabase -identity 56f8d1bc-cb04-44cf-bd41-a873643c5a14 | select id, querytimeout,connectiontimeout, status, server, ServiceInstance  

Список модулей обработки данных Reporting Services

В примере ниже циклически опрашивается каждое приложение служб Reporting Services и выводится список текущих модулей обработки данных для каждого приложения.

$apps = Get-SPRSServiceApplication  
foreach ($app in $apps)   
{  
Write-host -ForegroundColor "yellow" Service App Name $app.Name  
Get-SPRSExtension -identity $app -ExtensionType "Data" | select name,extensiontype | Format-Table -AutoSize  
}  

Пример результата:

  • Name ExtensionType

    ---- -------------

    SQL Data

    SQLAZURE Data

    SQLPDW Data

    OLEDB Data

    OLEDB-MD Data

    ORACLE Data

    ODBC Data

    XML Data

    SHAREPOINTLIST Data

Изменение и перечисление владельцев подписок Reporting Services

См. раздел Использование PowerShell для смены и перечисления владельцев подписок служб Reporting Services и запуска подписки.