Partilhar via


Script rs.exe do Reporting Services de exemplo para copiar conteúdo entre Servidores de Relatório

Aplica-se a:SQL Server Reporting Services (2008 R2 e posterior) SharePoint Servidor de Relatórios do Power BI

Este artigo inclui e descreve um exemplo de script RSS do Reporting Services que copia itens de conteúdo e configurações de um servidor de relatórios do SQL Server Reporting Services para outro servidor de relatórios, usando o utilitário RS.exe. O RS.exe é instalado com Reporting Services, tanto em modo nativo quanto no SharePoint. O script copia itens do Reporting Services, por exemplo, relatórios e assinaturas, de servidor para outro servidor. O script oferece suporte a servidores de relatório do modo do SharePoint e de modo nativo.

Observação

O módulo do PowerShell ReportingServicesTools de código aberto também está disponível.

Baixar o script ssrs_migration.rss

Baixe o script de migração RS.exe do Reporting Services do site do GitHub para uma pasta local. Para obter mais informações, consulte a seção Como usar o script neste artigo.

Cenários com suporte

O script oferece suporte a servidores de relatório do modo do SharePoint e de modo nativo. O script dá suporte às versões do SQL Server 2008 R2 (10.50.x) e posterior do servidor de relatórios e ao Servidor de Relatórios do Power BI.

O script pode ser usado para copiar o conteúdo entre servidores de relatório do mesmo modo ou de modos diferentes. Por exemplo, você pode executar o script para copiar um conteúdo de um servidor de relatório do modo nativo do SQL Server 2008 R2 (10.50.x) para um servidor de relatório do modo do SharePoint do SQL Server 2012 SP1 (11.0.3x). Você pode executar o script de qualquer servidor no qual o RS.exe esteja instalado. Por exemplo, na implantação a seguir, você pode:

  • Executar o RS.exe e o script NO Servidor A.

  • Copiar o conteúdo DO Servidor B

  • PARA o Servidor C

Nome do servidor Modo do Servidor de Relatório
Servidor A Nativo
Servidor B SharePoint
o Servidor C SharePoint

Para obter mais informações sobre o utilitário RS.exe, confira Utilitário RS.exe (SSRS).

Itens e recursos que o script migra

O script não substitui itens de conteúdo existentes com o mesmo nome. Se o script detectar itens com o mesmo nome no servidor de destino que estejam no servidor de origem, os itens individuais resultarão em uma mensagem de "falha" e o script continuará. A tabela a seguir lista os tipos de conteúdo e recursos que o script pode migrar para os modos do servidor de relatório de destino.

Item Migrado SharePoint Descrição
Senhas Não Não As senhas NÃO são migradas. Depois que os itens de conteúdo forem migrados, atualize as informações de credenciais no servidor de destino. Por exemplo, fontes de dados com credenciais armazenadas.
Meus Relatórios Não Não O recurso "Meus Relatórios" no modo Nativo se baseia em credenciais de usuário individuais, portanto, o serviço de scripts não tem acesso ao conteúdo nas pastas "Meus Relatórios" para outros usuários, sem ser o parâmetro -u usado para execução do script rss. Além disso, "Meus Relatórios" não é um recurso do modo do SharePoint do Reporting Services e os itens nas pastas não podem ser copiados para um ambiente do SharePoint. Em virtude disso, o script não copia os itens de relatório que estão na pasta "Meus Relatórios" em um servidor de relatório de modo nativo de origem

Para migrar p conteúdo de em pastas "Meus Relatórios" com esse script, siga estas etapas:

1. Crie novas pastas no portal da web. Opcionalmente, você pode criar pastas ou subpastas para cada usuário.
2. Entre como um dos usuários com o conteúdo "Meus Relatórios".
3. No portal da Web, selecione a pasta Meus Relatórios.
4. Selecione a exibição Detalhes da pasta.
5. Selecione cada relatório que deseja copiar.
6. Selecione Mover na barra de ferramentas do portal da Web.
7. Selecione a pasta de destino desejada.
8. Repita as etapas 2-7 para cada usuário.
9. Execute o script.
Histórico Não Não
Configurações de histórico Sim Sim As configurações de histórico são migradas, mas os detalhes do histórico NÃO.
Agendas Sim Sim Para migrar agendamentos, o SQL Server Agent deve estar em execução no servidor de destino. Se o SQL Server Agent não estiver em execução no destino, você verá uma mensagem de erro semelhante à seguinte:

Migrating schedules: 1 items found. Migrating schedule: theMondaySchedule ... FAILURE: The SQL Agent service isn't running. This operation requires the SQL Agent service. ---> Microsoft.ReportingServices.Diagnostics.Utilities.SchedulerNotResponding Exception: The SQL Agent service isn't running. This operation requires the SQL Agent service.
Funções e políticas do sistema Sim Sim Por padrão, o script não copia o esquema de permissão personalizado entre servidores. O comportamento padrão é que os itens sejam copiados para o servidor de destino com o sinalizador 'herdar permissões pai' definido como TRUE. Se você quiser que o script copie permissões para itens individuais, use a opção SECURITY.

Se os servidores de origem e destino não estiverem no mesmo modo de servidor de relatório, por exemplo, do modo nativo para o modo do SharePoint e você usar a opção SECURITY, o script tentará mapear as funções e os grupos padrão com base na comparação no artigo Comparar funções e tarefas no Reporting Services com grupos e permissões do SharePoint. As funções e os grupos personalizados não são copiados para o servidor de destino.

Quando o script estiver sendo copiado entre servidores que estejam no mesmo modoe você usar a opção SECURITY, o script criará novas funções (modo nativo) ou grupos (modo do SharePoint) no servidor de destino.

Se uma função já existir no servidor de destino, o script criará uma mensagem de "Falha" semelhante à seguinte e continuará a migração de outros itens. Depois que o script for concluído, verifique se as funções no servidor de destino estão configuradas para atender às suas necessidades. as funções de migração: oito itens encontrados.

Migrating role: Browser ... FAILURE: The role 'Browser' already exists and cannot be created. ---> Microsoft.ReportingServices.Diagnostics.Utilities.RoleAlreadyExistsException: The role 'Browser' already exists and cannot be created.

Para obter mais informações, consulte Conceder acesso ao usuário a um servidor de relatório

Observação: se um usuário existente no servidor de origem não existir no servidor de destino, o script não poderá aplicar atribuições de função no servidor de destino, o script não poderá aplicar atribuições de função, mesmo que a opção SECURITY seja usada.
Fonte de dados compartilhada Sim Sim O script não substitui itens existentes no servidor de destino. Se um item no servidor de destino já existir com o mesmo nome, você verá uma mensagem de erro semelhante a esta:

Migrating DataSource: /Data Sources/Aworks2012_oltp ... FAILURE:The item '/Data Sources/Aworks2012_oltp' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Data Source s/Aworks2012_oltp' already exists.

Credenciais NÃO são copiadas como parte da fonte de dados. Depois que os itens de conteúdo forem migrados, atualize as informações de credenciais no servidor de destino.
Conjunto de dados compartilhado Sim Sim
Pasta Sim Sim O script não substitui itens existentes no servidor de destino. Se um item no servidor de destino já existir com o mesmo nome, você verá uma mensagem de erro semelhante a esta:

Migrating Folder: /Reports ... FAILURE: The item '/Reports' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports' already exists.
Relatório Sim Sim O script não substitui itens existentes no servidor de destino. Se um item no servidor de destino já existir com o mesmo nome, você verá uma mensagem de erro semelhante a esta:

Migrating Report: /Reports/testThe item '/Reports/test' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports/test' already exists.
Relatórios do Power BI Não Não Disponível apenas com Servidor de Relatórios do Power BI

Comandos do PowerShell no Reporting Services, como Out-RsRestFolderContent e Write-RsRestFolderContent, podem ser usados como alternativa.
Parâmetros Sim Sim
Assinaturas Sim Sim
Configurações de histórico Sim Sim As configurações de histórico são migradas, mas os detalhes do histórico NÃO.
Opções de processamento Sim Sim
Opções de atualização de cache Sim Sim As configurações dependentes são migradas como parte de um item de catálogo. O seguinte exemplo de saída está fora do script, pois migra um relatório (.rdl) e as configurações relacionadas como opções de atualização de cache:

- Migrando parâmetros para o relatório TitleOnly.rdl: 0 itens encontrados.
- Migrando assinaturas para o relatório TitleOnly.rdl: 1 item encontrado.
- Migrando assinatura. Salvar em \\server\public\savedreports como TitleOnly ... SUCCESS
- Migrando configurações de histórico para o relatório TitleOnly.rdl ... SUCCESS
- Migrando opções de processamento para o relatório TitleOnly.rdl ... 0 itens encontrados.
- Migrando opções de atualização de cache para o relatório TitleOnly.rdl ... SUCCESS
- Migrando planos de atualização de cache para o relatório TitleOnly.rdl: 1 item encontrado.
- Migrando plano de atualização de cache titleonly_refresh735amM2F ... SUCCESS
Planos de atualização de cache Sim Sim
Imagens Sim Sim
Partes de relatório Sim Sim
KPIs Não Não Comandos do PowerShell para Reporting Services, como Out-RsRestFolderContent e Write-RsRestFolderContent, podem ser usados como alternativa.
Relatórios móveis Não Não Comandos do PowerShell para Reporting Services, como Out-RsRestFolderContent e Write-RsRestFolderContent, podem ser usados como alternativa.
Pastas de trabalho do Excel Não Não Disponível apenas com Servidor de Relatórios do Power BI

Usar comandos do PowerShell para Reporting Services, como Out-RsRestFolderContent e Write-RsRestFolderContent, pode ser usado como alternativa.

Observação

As partes de relatório são preteridas para todas as versões de SQL Server Reporting Services, começando com o SQL Server Reporting Services 2019, e para todas as versões do Servidor de Relatórios do Power BI, começando com o Servidor de Relatórios do Power BI de setembro de 2022.

Observação

O Publicador de Relatórios Móveis do SQL Server foi preterido em todas as versões do SQL Server Reporting Services posteriores ao SQL Server Reporting Services 2019. Ele foi descontinuado a partir do SQL Server Reporting Services 2022 e do Servidor de Relatórios do Power BI.

Permissões necessárias

As permissões necessárias para ler ou gravar itens e recursos não são as mesmas para todos os métodos usados no script. A tabela a seguir resume os métodos usados para cada item ou recurso e vincula ao conteúdo relacionado. Navegue até o artigo individual para ver as permissões necessárias. Por exemplo, o artigo do método ListChildren indica as permissões necessárias de:

  • Permissões necessárias de modo nativo: ReadProperties no item

  • Permissões necessárias de Modo do SharePoint: ViewListItems

Item ou recurso Fonte Destino
Itens de catálogo ListChildren

GetProperties

GetItemDataSources

GetItemReferences

GetDataSourceContents

GetItemLink
CreateCatalogItem

SetItemDataSources

GetItemReferences

CreateDataSource

CreateLinkedItem

CreateFolder
Função ListRoles

GetRoleProperties
CreateRole
Política do sistema GetSystemPolicies SetSystemPolicies
Agenda ListSchedules CreateSchedule
Subscription ListSubscriptions

GetSubscriptionProperties

GetDataDrivenSubscriptionProperties
CreateSubscription

CreateDataDrivenSubscription
Plano de atualização do cache ListCacheRefreshPlans

GetCacheRefreshPlanProperties
CreateCacheRefreshPlan
Parâmetros GetItemParameters SetItemParameters
Opções de execução GetExecutionOptions SetExecutionOptions
Opções de cache GetCacheOptions SetCacheOptions
Configurações de histórico GetItemHistoryOptions SetItemHistoryOptions
Política do item GetPolicies SetPolicies

Para obter mais informações, consulte Comparar funções e tarefas no Reporting Services com grupos e permissões do SharePoint.

Como usar o script

  1. Baixe o arquivo de script em uma pasta local, por exemplo, c:\rss\ssrs _migration.rss.

  2. Abra um prompt de comando com privilégios administrativos.

  3. Navegue até a pasta que contém o arquivo de ssrs_migration.rss.

  4. Execute o comando com os parâmetros adequados para seu cenário.

Exemplo básico, o servidor de relatório de modo nativo para um servidor de relatório de modo nativo:

O exemplo a seguir migra o conteúdo do modo nativo Sourceserver para o modo nativo Targetserver.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s https://SourceServer/ReportServer -u Domain\User -p password -v ts="https://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"

Observações de uso:

  • O script é executado em duas etapas.

    A primeira etapa é uma auditoria, para retornar uma lista de itens que são migrados, e a segunda etapa é o processo de migração.

    Você poderá cancelar o script após a etapa 1 se você só quiser ver a lista possível de migração ou caso você queira alterar os parâmetros. As configurações dependentes não estão listadas na etapa 1. Por exemplo, as opções de cache de um relatório não são listadas, mas o relatório em si, sim.

    Dica

    Se você deseja auditar um único servidor, use o mesmo servidor como origem e destino, e cancele depois da etapa 1.

    Um bom uso das informações de auditoria da etapa 1 é verificar funções existentes no servidor de modo nativo de origem e destino. O exemplo a seguir mostra a lista de auditoria da etapa 1. Observe que a lista inclui uma seção "funções" porque a opção -v security="True" foi usada:

    • Retrieve and report the list of items that will be migrated. You can cancel the script after step 1 if you do not want to start the actual migration.

      Retrieving roles:

      Role: Browser

      Role: Content Manager

      Role: Model Item Browser

      Retrieve and report the list of items that will be migrated. You can cancel the script after step 1 if you do not want to start the actual migration.

      Retrieving roles:

      Role: Browser

      Role: Content Manager

      Role: CustomRole

      Role: Model Item Browser

      Role: My Reports

      Role: Publisher

      Role: Report Builder

      Role: System Administrator

      Role: System User

      Retrieving system policies:

      Retrieving system policies:

      System policy: BUILTIN\Administrators

      System policy: domain\user1

      System policy: domain\ueser2

      Retrieving schedules:

      Schedule: theMondaySchedule

      Retrieving catalog items. This may take a while.

      Folder: /Data Sources

      DataSource: /Data Sources/Aworks2012_oltp

      Folder: /images

      Resource: /images/Boba Fett.png

      Resource: /images/R2-D2.png

      Folder: /Reports

      Report: /Reports/products

      Report: /Reports/test

      Report: /Reports/TitleOnly

  • SOURCE_URL e TARGET_URL devem ser URLs de servidor de relatório válidas que apontem para o servidor de relatório do Reporting Services de origem e destino. No modo nativo, uma URL de servidor de relatórios é semelhante à seguinte:

    • https://servername/reportserver

    No modo de SharePoint, a URL tem a esta aparência:

    • https://servername/_vti_bin/reportserver
  • A estrutura de pasta virtual apresentada ao usuário no SharePoint pode ser diferente da subjacente. Abra https://servername/_vti_bin/reportserver ou https://servername/sites/site_name/_vti_bin/reportserver em um navegador para ver a estrutura de pastas não virtual. Essa estrutura é útil para definir a pasta de origem e a pasta de destino como algo diferente de /, para um servidor no modo SharePoint.

  • As senhas não são migradas e devem ser reinseridas, por exemplo, fontes de dados com credenciais armazenadas.

Descrição do parâmetro

Parâmetro Descrição Obrigatório
-s Source_URL URL do servidor de relatório de origem Sim
-u Domain\password -p password Credenciais do servidor de origem. OPCIONAL, as credenciais padrão serão usadas se ausente
-v st="SITE" OPCIONAL. Esse parâmetro é usado apenas para servidores de relatório do modo do SharePoint.
- v f="SOURCEFOLDER" Defina “/” para migrar tudo, ou para algo como “/folder/subfolder” para a migração parcial. Tudo dentro desta pasta é copiado OPCIONAL; o padrão é /.
-v ts="TARGET_URL" 'URL do servidor RS de destino"
-v tu="domain\username" -v tp="password" 'Credenciais do servidor de destino. OPCIONAL, as credenciais padrão serão usadas se ausente. Observação: o usuário será listado como "autor" de agendas compartilhadas e conta "alterado por" para itens de relatório, no servidor de destino.
-v tst="SITE" OPCIONAL. Esse parâmetro é usado apenas para servidores de relatório do modo do SharePoint.
-v tf ="TARGETFOLDER" Defina como / para migração para o nível raiz. Defina como "/folder/subfolder" para copiar para uma pasta que já exista. Tudo dentro de "SOURCEFOLDER" é copiado para "TARGETFOLDER. OPCIONAL; o padrão é /.
-v security= "True/False" Se definido como False, os itens do catálogo de destino herdam a configuração de segurança de acordo com as configurações do sistema de destino. Essa configuração é recomendada para migrações entre diferentes tipos de servidor de relatórios, por exemplo, do modo nativo para o modo do SharePoint. Se definido como True, o script tentará migrar as configurações de segurança. OPCIONAL; o padrão é False.

Mais exemplos

Servidor de relatório do modo nativo para servidor de relatório do modo nativo

O exemplo a seguir migra o conteúdo do modo nativo Sourceserver para o modo nativo Targetserver.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s https://SourceServer/ReportServer -u Domain\User -p password -v ts="https://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"  

O exemplo a seguir adiciona a opção de segurança:

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s https://SourceServer/ReportServer -u Domain\User -p password -v ts="https://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password" -v security="True"  

Modo nativo para modo do SharePoint – site raiz

O exemplo a seguir migra o conteúdo de um modo nativo SourceServer para o "site raiz" em um servidor do modo do SharePoint TargetServer. As pastas "Reports" e "Data Sources" no servidor no modo nativo são migradas como novas bibliotecas na implantação do SharePoint.

Captura de tela que mostra as opções de menu Fontes de Dados e Relatórios realçadas.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s https://SourceServer/ReportServer -u Domain\User -p Password -v ts="https://TargetServer/_vti_bin/ReportServer" -v tu="Domain\User" -v tp="Password"  

Modo nativo para modo do SharePoint – conjunto de sites 'bi'

O exemplo a seguir migra o conteúdo de um servidor de modo nativo para um servidor do SharePoint que contém um conjunto de sites "sites/bi" e uma biblioteca de documentos compartilhados. O script cria pastas no documento na biblioteca de destino. Por exemplo, o script cria uma pasta "Relatórios" e uma pasta "Fontes de dados" na biblioteca de documentos de destino.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s https://SourceServer/ReportServer -u Domain\User -p Password -v ts="https://TargetServer/sites/bi/_vti_bin/reportserver" -v tst="sites/bi" -v tf="Shared Documents" -v tu="Domain\User" -v tp="Password"  

Modo do SharePoint para modo do SharePoint – conjunto de sites 'bi'

O exemplo a seguir migra conteúdo:

  • De um servidor do SharePoint SourceServer que contém um conjunto de sites "sites/bi" e uma biblioteca de documentos compartilhados.

  • Para um servidor do SharePoint TargetServer que contém um conjunto de sites "sites/bi" e uma biblioteca de documentos compartilhados.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s https://SourceServer/_vti_bin/reportserver -v st="sites/bi" -v f="Shared Documents" -u Domain\User1 -p Password -v ts="https://TargetServer/sites/bi/_vti_bin/reportserver" -v tst="sites/bi" -v tf="Shared Documents" -v tu="Domain\User" -v tp="Password"  

Modo nativo para modo nativo – máquina virtual do Azure

O exemplo a seguir migra conteúdo de um servidor de relatório de modo nativo SourceServer para um servidor de relatório de modo nativo TargetServer em execução em uma máquina virtual do Azure. O TargetServer não está associado ao domínio de SourceServer, e User2 é um administrador na máquina virtual do Azure TargetServer.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s https://SourceServer/ReportServer -u Domain\user1 -p Password -v ts="https://ssrsnativeazure.cloudapp.net/ReportServer" -v tu="user2" -v tp="Password2"  

Dica

Saiba mais sobre como usar o Windows PowerShell para criar servidores de relatório do Reporting Services nas máquinas virtuais do Azure em Usar o PowerShell para criar uma máquina virtual do Azure com um servidor de relatório do modo nativo.

Modo do SharePoint – conjunto de sites "bi" para o servidor de modo nativo na máquina virtual do Azure.

O exemplo a seguir migra conteúdo de um servidor de relatório de modo SharePoint SourceServer que contém um conjunto de sites de "sites/bi" e uma biblioteca de documentos compartilhada para um servidor de relatório de modo nativo TargetServer em execução em um máquina virtual do Azure. O TargetServer não está associado ao domínio de SourceServer, e User2 é um administrador na máquina virtual do Azure TargetServer.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s https://uetesta02/_vti_bin/reportserver -u user1 -p Password -v ts="https://ssrsnativeazure.cloudapp.net/ReportServer" -v tu="user2" -v tp="Passowrd2"  

Verificação

A seção resume algumas das etapas a serem realizadas no servidor de destino para verificar se o conteúdo e as políticas foram migrados com êxito.

Agendas

Para verificar agendamentos no servidor de destino:

Native Mode

  1. Abra o portal da Web no servidor de destino.

  2. Selecione Configurações do Site no menu superior.

  3. Selecione Agendamentos no painel esquerdo.

Modo SharePoint:

  1. Navegue para Configurações de site.

  2. No grupo Reporting Services, selecione Gerenciar Agendamentos Compartilhados.

Funções e grupos

Native Mode

  1. Abra o SQL Server Management Studio e conecte-se ao seu servidor de relatórios no modo nativo.

  2. Em Pesquisador de objetos, selecione Segurança.

  3. Selecione funções.

Solução de problemas

Use o sinalizador de rastreamento -t para receber mais informações. Por exemplo, se você executar o script e visualizar uma mensagem semelhante à seguinte

  • Não foi possível conectar ao servidor: https://\<servername>/ReportServer/ReportService2010.asmx

Execute o script novamente com o sinalizador -t para ver uma mensagem semelhante a esta:

  • System.Exception: Couldn't connect to server: https://\<servername>/ReportServer/ReportService2010.asmx ---> System.Net.WebException: **The request failed with HTTP status 401: Unauthorized**. at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at Microsoft.SqlServer.ReportingServices2010.ReportingService2010.IsSSLRequired() at Microsoft.ReportingServices.ScriptHost.Management2010Endpoint.PingService(String url, String userName, String password, String domain, Int32 timeout) at Microsoft.ReportingServices.ScriptHost.ScriptHost.DetermineServerUrlSecurity() --- End of inner exception stack trace ---

Utilitário RS.exe (SSRS)
Comparar funções e tarefas no Reporting Services com grupos e permissões do SharePoint