PowerShell cmdlet(Reporting Services SharePoint 模式)
在安装 SQL Server 2012 Reporting Services SharePoint 模式时,会安装 PowerShell cmdlet,以便支持 SharePoint 模式下的报表服务器。 这些 cmdlet 涵盖三个功能类别。
Reporting Services SharePoint 共享服务和代理的安装。
Reporting Services 服务应用程序和关联代理的设置和管理。
管理 Reporting Services 功能,例如扩展插件和加密密钥。
本主题包含以下内容:
Cmdlet Summary
Shared Service Cmdlets
Service Application Cmdlets
Reporting Services functionality related Cmdlets
Basic Samples
Detailed Samples
Create a service application and proxy
Review and update a delivery extension
Get and set Properties of the Reporting Service Application Database
List Data Extensions
Change and list subscription owners
Cmdlet 摘要
若要运行 cmdlet,您需要打开 SharePoint Management Shell。 还可以使用 Microsoft Windows 附带的图形用户界面编辑器 Windows PowerShell Integrated Scripting Environment (ISE)。 有关详细信息,请参阅在 Windows Server 上启动 Windows PowerShell (https://technet.microsoft.com/library/hh847814.aspx)。 在以下 cmdlet 摘要中,对服务应用程序“数据库”的引用指的由 Reporting Services 服务应用程序所创建并使用的所有数据库。 这包括配置、警报和 temp 数据库。
如果您在键入 PowerShell 示例时看到类似以下内容的错误消息:
- Install-SPRSService:无法将字词 "Install-SPRSService" 识别为 cmdlet、函数、脚本文件或可运行程序的名称。 检查名称的拼写,如果包括路径,请验证路径是否正确并重试。
出现以下问题之一:
未安装 Reporting Services SharePoint 模式,因此未安装 Reporting Services cmdlet。
您在 Windows PowerShell 或 Windows PowerShell ISE 而非 SharePoint Management Shell 中运行了 PowerShell 命令。 使用 SharePoint Management shell 或使用以下命令将 SharePoint 管理单元添加到 Windows PowerShell 窗口:
Add-PSSnapin Microsoft.SharePoint.PowerShell
有关详细信息,请参阅使用 Windows PowerShell 管理 SharePoint 2013 (https://technet.microsoft.com/zh-cn/library/ee806878.aspx)。
打开 SharePoint Management Shell 并运行 cmdlet
单击**“开始”**按钮
单击**“Microsoft SharePoint 产品”**组。
单击**“SharePoint Management Shell”**。
若要查看针对 cmdlet 的命令行帮助,请在 PowerShell 命令提示符处使用 PowerShell“Get-Help”命令。 例如:
Get-Help Get-SPRSServiceApplicationServers
Top
共享服务和代理 Cmdlet
下表包含用于 Reporting Services SharePoint 共享服务的 PowerShell cmdlet。
Cmdlet |
说明 |
---|---|
Install-SPRSService |
安装并注册或卸载 Reporting Services 共享服务。 这只能在 SharePoint 模式下具有 SQL Server Reporting Services 安装的计算机上进行。 对于安装,将发生两个操作:
对于卸载,将发生两个操作:
注意:如果场中存在安装了 Reporting Services 服务的任何其他计算机,或者场中仍有 Reporting Services 服务应用程序在运行,将显示一条警告消息。 |
Install-SPRSServiceProxy |
安装并注册(或卸载)SharePoint 场中的 Reporting Services 服务代理。 |
Get-SPRSProxyUrl |
获取用于访问 Reporting Services 服务的 URL。 |
Get-SPRSServiceApplicationServers |
获取本地 SharePoint 场中包含 Reporting Services 共享服务安装的所有服务器。 |
Top
服务应用程序和代理 Cmdlet
下表包含用于 Reporting Services 服务应用程序及其关联代理的 PowerShell cmdlet。
cmdlet |
说明 |
---|---|
Get-SPRSServiceApplication |
获取一个或多个 Reporting Services 服务应用程序。 |
New-SPRSServiceApplication |
创建一个新的 Reporting Services 服务应用程序及关联的数据库。 LogonType 参数:指定报表服务器是否使用 SSRS 应用程序池帐户或 SQL Server 登录名来访问报表服务器数据库。 该参数可以是下列值之一:
|
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 服务应用程序数据库。 |
Get-SPRSDatabaseRightsScript |
将数据库权限脚本输出到 Reporting Services 服务应用程序的屏幕。 系统会提示所需的用户和数据库,然后返回您可以运行以修改权限的 Transact SQL。 然后,您可以在 SQL Server Management Studio 中运行此脚本。 |
Get-SPRSDatabaseUpgradeScript |
将数据库升级脚本输出到此屏幕。 该脚本将 Reporting Services 服务应用程序数据库升级到当前 Reporting Services 安装的数据库版本。 |
Top
Reporting Services 自定义功能 Cmdlet
Cmdlet |
说明 |
---|---|
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 扩展插件。 |
Get-SPRSSite |
基于是否启用了“ReportingService”功能来获取 SharePoint 站点。 默认情况下,将返回启用“ReportingService”功能的站点。 |
基本示例
返回在名称中包含“SPRS”的 cmdlet 的列表。 这将是 Reporting Services cmdlet 的完整列表。
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 Management Shell 键入以下命令,以便从日志文件中返回经过筛选的行列表。 该命令将筛选包含“ssrscustomactionerror”的行。 此示例用于在安装 rssharepoint.msi 时查找创建的日志文件。
Get-content -path C:\Users\testuser\AppData\Local\Temp\rs_sp_0.log | select-string "ssrscustomactionerror"
Top
详细示例
除以下示例外,请参阅 (Steps 1-4) Windows PowerShell script for Steps 1–4 主题中的“Windows PowerShell 脚本”部分。
创建服务应用程序和代理
此示例脚本完成以下任务:
创建 Reporting Services 服务应用程序和代理。 该脚本假设应用程序池“My App Pool”已存在。
向默认代理组添加代理
授予服务应用程序对端口 80 Web 应用程序的内容数据库的访问权限。 该脚本假设网站“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)
查看和更新传递扩展插件
以下 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 " My RS Ser *"}
以下脚本将返回名为“My RS Service App”的服务应用程序的报表服务器电子邮件传递扩展插件的当前配置值。 第一步将变量 $app 的值设置为具有“My RS Service App”名称的服务应用程序的对象。
第二个语句将获取使用变量 $app 的服务应用程序对象的“报表服务器电子邮件”传递扩展插件,并选择配置 XML
$app=get-sprsserviceapplication –Name "My RS Service App"
Get-SPRSExtension -identity $app -ExtensionType "Delivery" -name "Report Server Email" | select -ExpandProperty ConfigurationXml
Top
获取并设置 Reporting Services 应用程序数据库的属性
以下示例首先返回数据库和属性的列表,因此可以确定随后提供给 set 命令的数据库 GUID (ID)。 有关属性的完整列表,请使用 Get-SPRSDatabase | format-list。
get-SPRSDatabase | select id, querytimeout,connectiontimeout, status, server, ServiceInstance
以下是输出的一个示例。 确定要修改的数据库的 ID,并在 SET cmdlet 中使用该 ID。
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
Top
列表数据扩展
以下示例遍历每个 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
Top
更改并列出订阅所有者
请参阅Use PowerShell to Change and List Reporting Services Subscription Owners and Run a Subscription。
Top
请参阅
概念
Use PowerShell to Change and List Reporting Services Subscription Owners and Run a Subscription