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
Baixe o arquivo de script em uma pasta local, por exemplo, c:\rss\ssrs _migration.rss.
Abra um prompt de comando com privilégios administrativos.
Navegue até a pasta que contém o arquivo de ssrs_migration.rss.
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
ouhttps://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.
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
Abra o portal da Web no servidor de destino.
Selecione Configurações do Site no menu superior.
Selecione Agendamentos no painel esquerdo.
Modo SharePoint:
Navegue para Configurações de site.
No grupo Reporting Services, selecione Gerenciar Agendamentos Compartilhados.
Funções e grupos
Native Mode
Abra o SQL Server Management Studio e conecte-se ao seu servidor de relatórios no modo nativo.
Em Pesquisador de objetos, selecione Segurança.
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 ---
Conteúdo relacionado
Utilitário RS.exe (SSRS)
Comparar funções e tarefas no Reporting Services com grupos e permissões do SharePoint