Командлеты 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 и выполнение командлетов
Нажмите Пуск.
Выберите группу продуктов Microsoft SharePoint.
Выберите оболочку управления 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 и прокси-сервера
Этот пример скрипта выполняет следующие задачи:
Создайте приложение службы Reporting Services и прокси-сервер. В скрипте предполагается, что пул приложений "My App Pool" уже существует.
Добавьте прокси-сервер в группу прокси-серверов по умолчанию
Предоставьте приложению службы доступ к порту 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