Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
Descarregue o ficheiro de script para uma pasta local, por exemplo c:\rss\ssrs_migration.rss.
Abra uma linha de comandos com privilégios administrativos.
Navegue até à pasta que contém o ficheiro ssrs_migration.rss.
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: BrowserRole: Content ManagerRole: Model Item BrowserRetrieve 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: BrowserRole: Content ManagerRole: CustomRoleRole: Model Item BrowserRole: My ReportsRole: PublisherRole: Report BuilderRole: System AdministratorRole: System UserRetrieving system policies:Retrieving system policies:System policy: BUILTIN\AdministratorsSystem policy: domain\user1System policy: domain\ueser2Retrieving schedules:Schedule: theMondayScheduleRetrieving catalog items. This may take a while.Folder: /Data SourcesDataSource: /Data Sources/Aworks2012_oltpFolder: /imagesResource: /images/Boba Fett.pngResource: /images/R2-D2.pngFolder: /ReportsReport: /Reports/productsReport: /Reports/testReport: /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/reportserverouhttps://servername/sites/site_name/_vti_bin/reportservernum 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.
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
Abra o portal web no servidor de destino.
Selecione Definições do Site no menu superior.
Selecione Horários no painel esquerdo.
Modo SharePoint:
Navegar até Definições do Site.
No grupo de Serviços de Relatório , selecione Gerir Agendamentos Partilhados.
Funções e grupos
Modo Nativo
Abre o SQL Server Management Studio e liga-te ao teu servidor de relatórios em modo nativo.
No Explorador de Objetos , selecione Segurança.
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 ---
Conteúdo relacionado
UtilitárioRS.exe (SSRS)
Compare funções e tarefas nos Serviços de Relatórios com grupos SharePoint e permissões