Partilhar via


Exemplo de script rs.exe dos Serviços de Relatórios para copiar conteúdo entre servidores de relatórios

Aplica-se a: SQL Server Reporting Services (2008 R2 e versões posteriores) SharePoint Power BI Report Server

Este artigo inclui e descreve um exemplo de script RSS dos Serviços de Relatórios que copia itens de conteúdo e definições de um servidor de relatórios dos Serviços de Relatórios SQL Server para outro servidor de relatórios, utilizando a utilidade RS.exe . RS.exe está instalado com Serviços de Relatório, tanto em modo nativo como em modo SharePoint. O script copia itens dos Serviços de Relatório, por exemplo relatórios e subscrições, de um servidor para outro servidor. O script suporta tanto servidores de relatórios em modo SharePoint como em modo nativo.

Observação

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

Descarregue o script ssrs_migration.rss

Descarregue o script Reporting Services RS.exe migration script do site GitHub para uma pasta local. Para mais informações, consulte a secção Como usar o guião neste artigo.

Cenários suportados

O script suporta tanto servidores de relatórios em modo SharePoint como em modo nativo. O script suporta as versões do servidor de relatórios SQL Server 2008 R2 (10.50.x) e posteriores, e o Power BI Report Server.

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

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

  • Para copiar conteúdo DO Servidor B

  • PARA Servidor C

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

Para mais informações sobre a RS.exe utilidade, consulte RS.exe Utilidade (SSRS).

Itens e recursos que o script migra

O script não sobrescreve o conteúdo existente com o mesmo nome. Se o script detetar itens com o mesmo nome no servidor de destino que estejam no servidor de origem, os itens individuais resultam numa mensagem de "falha" e o script continua. A tabela seguinte lista os tipos de conteúdo e recursos que o script pode migrar para modos de servidor de relatórios de destino.

Item Migrado SharePoint Description
Passwords No No As palavras-passe NÃO são transferidas. Depois de os itens de conteúdo serem migrados, atualize a informação das credenciais no servidor de destino. Por exemplo, fontes de dados com credenciais armazenadas.
Meus Relatórios No No A funcionalidade do modo nativo "Os Meus Relatórios" baseia-se em acessos individuais dos utilizadores; portanto, o serviço de scripting não tem acesso ao conteúdo nas pastas "Os Meus Relatórios" para utilizadores diferentes do parâmetro -u usado para executar o script rss. Além disso, "Os Meus Relatórios" não é uma funcionalidade do modo SharePoint dos Serviços de Relatórios e os itens nas pastas não podem ser copiados para um ambiente SharePoint. Portanto, o script não copia os itens de relatório que estão nas pastas "Os Meus Relatórios" num servidor de relatórios nativo de origem

Para migrar o conteúdo nas pastas "Os Meus Relatórios" com este script, complete os seguintes passos:

1. Criar nova(s) pasta(s) no portal web. Opcionalmente, pode criar pastas ou subpastas para cada utilizador.
2. Iniciar sessão como um dos utilizadores que possui conteúdo "Os Meus Relatórios".
3. No portal web, selecione a pasta Meus Relatórios .
4. Selecione a vista Detalhes para a pasta.
5. Selecione cada relatório que pretende copiar.
6. Selecione Mover na barra de ferramentas do portal web.
7. Selecione a pasta de destino desejada.
8. Repita os passos 2-7 para cada utilizador.
9. Executa o guião.
History No No
Cenários históricos Yes Yes As definições de histórico são migradas, no entanto os detalhes de histórico NÃO são migrados.
Horários Yes Yes Para migrar agendamentos, o SQL Server Agent deve estar a correr no servidor alvo. Se o SQL Server Agent não estiver a correr no destino, verá uma mensagem de erro semelhante a esta:

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.
Papéis e políticas do sistema Yes Yes Por defeito, o script não copia o esquema de permissões personalizado entre servidores. O comportamento padrão é que os itens são copiados para o servidor de destino com o flag 'herdar permissões pais' definido como TRUE. Se quiseres que o script copie permissões para itens individuais, usa o switch SECURITY.

Se os servidores de origem e destino não forem o mesmo modo de servidor de relatórios, por exemplo do modo nativo para o modo SharePoint, e usares o interruptor SECURITY, o script tenta mapear papéis e grupos predefinidos com base na comparação no artigo Compare papéis e tarefas em Serviços de Relatórios para grupos e permissões do SharePoint. Papéis e grupos personalizados não são copiados para o servidor de destino.

Quando o script está a copiar entre servidores do mesmo modo e usas o switch SECURITY, o script cria novos papéis (modo nativo) ou grupos (modo SharePoint) no servidor de destino.

Se já existir um papel no servidor de destino, o script cria uma mensagem "Falha" semelhante à seguinte, e continua a migrar outros itens. Depois de o script terminar, verifique se os papéis no servidor de destino estão configurados para satisfazer as suas necessidades. 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 mais informações, consulte Conceder acesso ao utilizador a um servidor de relatórios

Nota: Se um utilizador que existe no servidor de origem não existir no servidor de destino, o script não pode aplicar atribuições de papéis no servidor de destino, o script não pode aplicar atribuições de papéis, mesmo que o switch SECURITY seja usado.
Fonte de dados partilhada Yes Yes O script não sobrescreve itens existentes no servidor de destino. Se um item no servidor de destino já existir com o mesmo nome, 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.

As credenciais NÃO são transferidas como parte da fonte de dados. Depois de os itens de conteúdo serem migrados, atualize a informação das credenciais no servidor de destino.
Conjunto de dados partilhado Yes Yes
Folder Yes Yes O script não sobrescreve itens existentes no servidor de destino. Se um item no servidor de destino já existir com o mesmo nome, 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 Yes Yes O script não sobrescreve itens existentes no servidor de destino. Se um item no servidor de destino já existir com o mesmo nome, 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 o Power BI Report Server

Comandos PowerShell nos Serviços de Relatório, como Out-RsRestFolderContent e Write-RsRestFolderContent, podem ser usados como alternativa.
Parâmetros Yes Yes
Subscrições Yes Yes
Configurações de Histórico Yes Yes As definições de histórico são migradas, no entanto os detalhes de histórico NÃO são migrados.
Opções de processamento Yes Yes
Opções de atualização da cache Yes Yes As definições dependentes são migradas como parte de um item de catálogo. A saída seguinte é um exemplo do resultado de execução do script à medida que migra um relatório (.rdl) e definições relacionadas, como opções de atualização do cache:

- Migração de parâmetros para o relatório TitleOnly.rdl 0 itens encontrados.
- Migração de subscrições para o relatório TitleOnly.rdl: 1 item encontrado.
- Migrar subscrição Guardar em \\server\public\savedreports como TitleOnly ... SUCESSO
- Migrar definições de histórico para o relatório TitleOnly.rdl ... SUCESSO
- Migração das opções de processamento para o relatório TitleOnly.rdl ... 0 itens encontrados.
- Migração das opções de atualização da cache para o relatório TitleOnly.rdl ... SUCESSO.
- Migração de planos de atualização da cache para o relatório TitleOnly.rdl: 1 item encontrado.
- Migração do plano de atualização da cache titleonly_refresh735amM2F ... SUCESSO
Planos de atualização da cache Yes Yes
Imagens Yes Yes
Partes do relatório Yes Yes
KPIs Não Não Comandos PowerShell para Serviços de Relatório, como Out-RsRestFolderContent e Write-RsRestFolderContent, podem ser usados como alternativa.
Relatórios móveis Não Não Comandos PowerShell para Serviços de Relatório, como Out-RsRestFolderContent e Write-RsRestFolderContent, podem ser usados como alternativa.
Livros de Exercícios Excel Não Não Disponível apenas com o Power BI Report Server

Comandos PowerShell para Serviços de Relatório, como Out-RsRestFolderContent e Write-RsRestFolderContent, podem ser usados como alternativa.

Observação

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

Observação

O SQL Server Mobile Report Publisher foi preterido para todas as versões do SQL Server Reporting Services após o SQL Server Reporting Services 2019. Ele foi descontinuado a partir do SQL Server Reporting Services 2022 e do Servidor de Relatório do Power BI.

Permissões necessárias

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

  • Permissões Necessárias no Modo Nativo: ReadProperties no Item

  • Permissões Necessárias no Modo SharePoint: ViewListItems

Item ou Recurso Fonte Target
Itens do catálogo ListChildren

GetProperties

GetItemDataSources

GetItemReferences

GetDataSourceContents

GetItemLink
CreateCatalogItem

SetItemDataSources

GetItemReferences

CreateDataSource

CreateLinkedItem

CreateFolder
Funções ListRoles

GetRoleProperties
CreateRole
Política do Sistema GetSystemPolicies SetSystemPolicies
Schedule ListSchedules CreateSchedule
Subscription ListSubscriptions

GetSubscriptionProperties

GetDataDrivenSubscriptionProperties
CreateSubscription

CreateDataDrivenSubscription
Plano de atualização da cache ListCacheRefreshPlans

GetCacheRefreshPlanProperties
CreateCacheRefreshPlan
Parâmetros GetItemParameters SetItemParameters
Opções de execução GetExecutionOptions SetExecutionOptions
Opções de cache GetCacheOptions SetCacheOptions
Cenários históricos GetItemHistoryOptions SetItemHistoryOptions
Política de Itens GetPolicies SetPolicies

Para mais informações, consulte Comparar funções e tarefas nos Serviços de Relatórios com grupos SharePoint e permissões.

Como usar o script

  1. Descarregue o ficheiro de script para uma pasta local, por exemplo c:\rss\ssrs_migration.rss.

  2. Abra uma linha de comandos com privilégios administrativos.

  3. Navegue até à pasta que contém o ficheiro ssrs_migration.rss.

  4. Executa o comando com os parâmetros adequados ao teu cenário.

Exemplo básico: servidor de relatórios em modo nativo para servidor de relatórios em modo nativo:

O exemplo seguinte migra conteúdo do Sourceserver em modo nativo para o Targetserver em modo nativo.

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"

Notas de utilização:

  • O script corre em dois passos.

    O primeiro passo é uma auditoria, para devolver uma lista dos itens que foram migrados, e o segundo passo é o processo de migração.

    Podes cancelar o script após o passo 1 se só quiseres ver a lista de migração possível ou se quiseres modificar os parâmetros. As definições dependentes não estão listadas no passo 1. Por exemplo, as opções de cache de um relatório não estão listadas, mas o próprio relatório está.

    Sugestão

    Se quiseres auditar apenas um único servidor, usa o mesmo servidor para origem e destino e cancela após o passo 1.

    Uma boa utilização da informação da auditoria do passo 1 é rever os papéis existentes tanto no servidor nativo de origem como no de destino. O exemplo seguinte mostra a lista de auditoria do passo 1. Note que a lista inclui uma secção de "funções" devido à utilização do switch-v security="True".

    • 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

  • O SOURCE_URL e o TARGET_URL devem ser URLs válidos do servidor de relatórios que apontem para o servidor de relatórios dos Serviços de Relatórios de origem e destino. No modo nativo, uma URL de servidor de relatórios assemelha-se a esta URL:

    • https://servername/reportserver

    No modo SharePoint, o URL parece-se com este:

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

  • As palavras-passe não são migradas e têm de ser reintroduzidas, por exemplo fontes de dados com credenciais armazenadas.

Descrição do parâmetro

Parâmetro Description Obrigatório
-s Source_URL URL do servidor de relatórios de origem Yes
-U Domínio\palavra-passe -p palavra-passe Credenciais para servidor de origem. OPCIONAL, as credenciais padrão são usadas se estiverem em falta
-v st="SITE" OPCIONAL. Este parâmetro é usado apenas para servidores de relatórios em modo SharePoint.
- v f="SOURCEFOLDER" Define para "/" para migrar tudo, ou para algo como "/folder/subfolder" para migração parcial. Tudo o que está nesta pasta é copiado OPCIONAL, o padrão é /.
-v ts="TARGET_URL" 'URL do servidor RS alvo'
-v tu="domínio\nome utilizador" -v tp="password" 'Credenciais para o servidor alvo. OPCIONAL, as credenciais padrão são usadas caso faltem. Nota: no servidor de destino, o utilizador é listado como "criador" dos agendamentos partilhados e a conta que "modificou" os itens de relatório.
-v tst="SITE" OPCIONAL. Este parâmetro é usado apenas para servidores de relatórios em modo SharePoint.
-v tf ="TARGETFOLDER" Definir / para migrar para o nível raiz. Define para "/folder/subfolder" para copiar para uma pasta que já existe. Tudo o que está dentro da "SOURCEFOLDER" é copiado para a "TARGETFOLDER. OPCIONAL, o padrão é /.
-v security= "Verdadeiro/Falso" Se definido para False, os itens do catálogo de destino herdam a definição de segurança de acordo com as definições do sistema de destino. Esta configuração é recomendada para migrações entre diferentes tipos de servidores de relatórios, por exemplo, do modo nativo para o modo SharePoint. Se definido para True, o script tenta migrar as definições de segurança. OPCIONAL, o padrão é False.

Mais exemplos

Servidor de relatórios em modo nativo para servidor de relatórios em modo nativo

O exemplo seguinte migra conteúdo do Sourceserver em modo nativo para o Targetserver em modo nativo.

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 seguinte adiciona o interruptor 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 SharePoint - Site Raiz

O exemplo seguinte migra conteúdo de um SourceServer em modo nativo para o "site raiz" num servidor TargetServer em modo SharePoint. As pastas "Relatórios" e "Fontes de Dados" no servidor de modo nativo são migradas como novas bibliotecas na implementação do SharePoint.

Captura de ecrã que mostra as opções destacadas de Fontes de Dados e Relatórios.

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 SharePoint - colecção de sites 'bi'

O exemplo seguinte migra conteúdo de um servidor em modo nativo para um servidor SharePoint que contém uma coleção de sites "sites/bi" e uma biblioteca de documentos partilhados. O script cria pastas na biblioteca de destino. Por exemplo, o script cria uma pasta "Reports" e uma pasta "Data Sources" 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"  

De Modo SharePoint para Modo SharePoint - coleção de sites BI

O exemplo seguinte migra conteúdo:

  • A partir de um servidor SharePoint SourceServer que contém uma coleção de sites em "sites/bi" e uma biblioteca de documentos partilhados.

  • Para um servidor TargetServer do SharePoint que contém uma coleção de sites denominada "sites/bi" e uma biblioteca de documentos partilhados.

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 a modo nativo - Máquina virtual da Azure

O exemplo seguinte migra conteúdo de um servidor de relatórios em modo nativo SourceServer para um servidor de relatórios nativo TargetServer a correr numa máquina virtual Azure. O TargetServer não está ligado ao domínio do SourceServer e o User2 é um administrador na máquina virtual 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"  

Sugestão

Para informações sobre como usar o Windows PowerShell para criar servidores de relatórios de Serviços de Relatórios em máquinas virtuais Azure, consulte Usar PowerShell para criar uma VM Azure com um servidor de relatórios em modo nativo.

Modo SharePoint - coleção de sites 'BI' num servidor em modo nativo numa Azure Virtual Machine.

O exemplo seguinte migra conteúdo de um servidor de relatórios em modo SharePoint SourceServer que contém uma coleção de sites de "sites/bi" e uma biblioteca de documentos partilhados para um servidor de relatórios em modo Nativo TargetServer a correr numa máquina virtual no Azure. O TargetServer não está ligado ao domínio do SourceServer e o User2 é um administrador na máquina virtual 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"  

Verification

A secção resume alguns dos passos a seguir no servidor de destino para verificar se o conteúdo e as políticas foram migrados com sucesso.

Horários

Para verificar os horários no servidor alvo:

Modo Nativo

  1. Abra o portal web no servidor de destino.

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

  3. Selecione Horários no painel esquerdo.

Modo SharePoint:

  1. Navegar até Definições do Site.

  2. No grupo de Serviços de Relatório , selecione Gerir Agendamentos Partilhados.

Funções e grupos

Modo Nativo

  1. Abre o SQL Server Management Studio e liga-te ao teu servidor de relatórios em modo nativo.

  2. No Explorador de Objetos , selecione Segurança.

  3. Selecione Funções.

Solução de problemas

Use o sinalizador -t para receber mais informações. Por exemplo, se executares o script e vires uma mensagem semelhante à seguinte

  • Não consegui ligar-me ao servidor: https://\<servername>/ReportServer/ReportService2010.asmx

Execute novamente o script com a bandeira -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árioRS.exe (SSRS)
Compare funções e tarefas nos Serviços de Relatórios com grupos SharePoint e permissões