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


PowerShell cmdlets для режима SharePoint службы Reporting Services

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

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

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

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

Область применения: Reporting Services режиме SharePoint

В этом разделе обсуждается следующее.

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

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

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

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

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

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

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

    Add-PSSnapin Microsoft.SharePoint.PowerShell  
    

Дополнительные сведения см. в статье Использование Windows PowerShell для администрирования SharePoint 2013 (https://technet.microsoft.com/library/ee806878.aspx).

Открытие оболочки управления SharePoint и выполнение командлетов

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

  2. Щелкните группу Продукты Microsoft SharePoint .

  3. Щелкните Консоль управления SharePoint.

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

Get-Help Get-SPRSServiceApplicationServers

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

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

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

1) Служба Reporting Services установлена в ферме.

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

При удалении выполняются две операции.
1) Служба Reporting Services удаляется с текущего компьютера.
2) Служба 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 и связанных с ними прокси-серверов.

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

Параметр LogonType указывает, использует ли сервер отчетов учетную запись пула приложений служб 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 comdlet для изменения параметров, например querytimeout. Смотрите примеры в данной теме, Получение и задание свойств базы данных приложения Reporting Services, например времени ожидания базы данных.
Get-SPRSDatabaseRightsScript Выводит на экран скрипт определения прав базы данных для приложения служб Reporting Services. Запрашивает необходимые сведения о пользователе и базе данных, а затем возвращает код Transact-SQL, который можно выполнить для изменения разрешений. Затем этот скрипт можно запустить в среде SQL Server Management Studio.
Get-SPRSDatabaseUpgradeScript Выводит скрипт обновления базы данных на экран. Скрипт обновит базы данных приложения служб Reporting Services до версии текущей установки служб Reporting Services.

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

Командлет Описание
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

Прорисовка

Данные

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

Аутентификация

EventProcessing

ReportItems

Designer

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 базы данных содержимого веб-приложения. Сценарий предполагает, что сайт "http://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 "http://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 значения, равного объекту приложения службы с именем «Мое приложение служб RS».

Во второй инструкции запрашивается значение модуля доставки "электронная почта сервера отчетов" для объекта приложения службы в переменной $app и выбрано configurationXML (XML-файлы конфигурации).

$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  

Перечисление модулей данных служб отчетов в режиме Интеграции с SharePoint

В примере ниже циклически опрашивается каждое приложение служб 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

Изменение и вывод списка владельцев подписки

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

См. также:

Использование PowerShell для смены и перечисления владельцев подписок служб Reporting Services и запуска подписки
Контрольный список: использование PowerShell для проверки PowerPivot для SharePoint
Скрипты PowerShell для управления SharePoint CodePlex