Script di esempio rs.exe di Reporting Services per la migrazione del contenuto tra server di report
Questo argomento include e descrive un esempio Reporting Services script RSS che copia elementi di contenuto e impostazioni da un server di report SQL Server Reporting Services a un altro server di report, usando l'utilità RS.exe. RS.exe viene installato con Reporting Services, sia in modalità nativa che in modalità SharePoint. Lo script copia gli elementi di Reporting Services, ad esempio report e sottoscrizioni, da un server a un altro. Lo script supporta server di report in modalità nativa e in modalità SharePoint.
Si applica a: Reporting Services modalità SharePoint | Reporting Services modalità nativa |
Contenuto dell'argomento:
Per scaricare lo script ssrs_migration.rss
Scaricare lo script dal sito CodePlex nella pagina relativa allo Reporting Services RS.exe script migrates content (Script RS.exe di Reporting Services che esegue la migrazione del contenuto) in una cartella locale. Per altre informazioni, vedere la sezione Come usare lo script in questo argomento.
Scenari Supportati
Lo script supporta server di report in modalità nativa e in modalità SharePoint. Lo script supporta le versioni seguenti del server di report:
SQL Server 2014
SQL Server 2012
SQL Server 2008 R2
Lo script può essere utilizzato per copiare il contenuto tra server di report nella stessa modalità o in modalità diverse. Ad esempio, è possibile eseguire lo script per copiare il contenuto da un server di report in modalità nativa SQL Server 2008 R2 a un server di report in modalità sharePoint SQL Server 2012 SP1. È possibile eseguire lo script da qualsiasi server in cui è installato RS.exe. Nella distribuzione seguente, ad esempio, è possibile:
Eseguire RS.exe e lo script SUL Server A.
Copiare il contenuto DAL Server B
AL Server C
Nome server | Modalità server di report |
---|---|
Server A | Nativo |
Server B | SharePoint |
Server C | SharePoint |
Per altre informazioni sull'utilità RS.exe, vedere Utilità RS.exe (SSRS).
Elementi e risorse di cui lo script esegue la migrazione
Lo script non sovrascrive elementi di contenuto esistenti con lo stesso nome. Se lo script rileva nel server di destinazione elementi presenti nel server di origine con lo stesso nome, viene visualizzato un messaggio di errore per i singoli elementi e lo script continua. Nella tabella seguente sono elencati i tipi di contenuto e risorse di cui lo script può eseguire la migrazione nelle modalità del server di report di destinazione.
Elemento | Migrato | SharePoint | Descrizione |
---|---|---|---|
Password | No | No | NON viene eseguita la migrazione delle password. Dopo la migrazione degli elementi di contenuto, aggiornare le informazioni sulle credenziali nel server di destinazione. Ad esempio, origini dati con credenziali archiviate. |
Report personali | No | No | La funzionalità "Report personali" in modalità nativa si basa su singoli account di accesso utente, pertanto il servizio di scripting non ha accesso al contenuto nelle cartelle "Report personali" per gli utenti diversi dal parametro -u usato per eseguire lo script rss. Inoltre, "Report personali" non è una funzionalità di Reporting Services modalità SharePoint e gli elementi nelle cartelle non possono essere copiati in un ambiente SharePoint. Pertanto, lo script non copia gli elementi del report presenti nelle cartelle "Report personali" in un server di report in modalità nativa di origine. Per eseguire la migrazione del contenuto nelle cartelle "Report personali" con questo script, completare quanto segue: 1) Creare nuove cartelle in Gestione report. Se lo si desidera, è possibile creare cartelle o sottocartelle per ogni utente. 2) Accedere come uno degli utenti con il contenuto "Report personali". 3) In Gestione report fare clic sulla cartella Report personali. 4) Fare clic sulla visualizzazione Dettagli per la cartella. 5) Selezionare ogni report da copiare. 6) Fare clic su Sposta sulla barra degli strumenti di Gestione report. 7) Selezionare la cartella di destinazione desiderata. 8) Ripetere i passaggi da 2 a 7 per ogni utente. 9) Eseguire lo script. |
Cronologia | No | No | |
Impostazioni di cronologia | Sì | Sì | Viene eseguita la migrazione delle impostazioni di cronologia, ma NON dei dettagli della cronologia. |
Pianificazioni | sì | sì | Per eseguire la migrazione delle pianificazioni, è necessario che SQL Server Agent sia in esecuzione nel server di destinazione. Se SQL Server Agent non è in esecuzione nel server di destinazione, viene visualizzato un messaggio di errore simile al seguente:Migrating schedules: 1 items found. Migrating schedule: theMondaySchedule ... FAILURE: The SQL Agent service is not running. This operation requires the SQL Agent service. ---> Microsoft.ReportingServices.Diagnostics.Utilities.SchedulerNotResponding Exception: The SQL Agent service is not running. This operation requires the SQL Agent service. |
Ruoli e criteri di sistema | Sì | Sì | Per impostazione predefinita lo script non copia lo schema di autorizzazioni personalizzate da un server a un altro. Il comportamento predefinito è che gli elementi verranno coiedi al server di destinazione con il flag "eredita autorizzazioni padre" impostato su TRUE. Se si desidera che le autorizzazioni per singoli elementi vengano copiate dallo script, utilizzare l'opzione SECURITY. Se i server di origine e destinazione non sono nella stessa modalità del server di report, ad esempio dalla modalità nativa alla modalità SharePoint, e si usa l'opzione SECURITY, lo script tenterà di eseguire il mapping dei ruoli e dei gruppi predefiniti in base al confronto riportato nell'argomento Confrontare ruoli e attività di Reporting Services con autorizzazioni e gruppi di SharePointche segue. I ruoli e i gruppi personalizzati non vengono copiati nel server di destinazione. Quando lo script copia tra server nella stessa modalitàe si usa l'opzione SECURITY, lo script crea nuovi ruoli (modalità nativa) o gruppi (modalità SharePoint) nel server di destinazione. Se esiste già un ruolo nel server di destinazione, lo script genera un messaggio di errore simile al seguente e continua la migrazione degli altri elementi. Al completamento dello script, verificare che i ruoli nel server di destinazione siano configurati per soddisfare le esigenze specifiche. Ruoli di cui si esegue la migrazione: 8 elementi trovati. 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. Per altre informazioni, vedere Concedere l'accesso utente a un server di report (Gestione report) Nota: se un utente esistente nel server di origine non esiste nel server di destinazione, lo script non può applicare le assegnazioni dei ruoli nel server di destinazione; lo script non può applicare le assegnazioni dei ruoli anche se si usa l'opzione SECURITY. |
Origine dati condivisa | Sì | Sì | Lo script non sovrascrive gli elementi esistenti nel server di destinazione. Se nel server di destinazione esiste già un elemento con lo stesso nome, viene visualizzato un messaggio di errore simile al seguente: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. Le credenziali NON sono copiate come parte dell'origine dati. Dopo la migrazione degli elementi di contenuto, aggiornare le informazioni sulle credenziali nel server di destinazione. |
Set di dati condiviso | Sì | Sì | |
Cartella | Sì | Sì | Lo script non sovrascrive gli elementi esistenti nel server di destinazione. Se nel server di destinazione esiste già un elemento con lo stesso nome, viene visualizzato un messaggio di errore simile al seguente:Migrating Folder: /Reports ... FAILURE: The item '/Reports' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports' already exists. |
Report | Sì | Sì | Lo script non sovrascrive gli elementi esistenti nel server di destinazione. Se nel server di destinazione esiste già un elemento con lo stesso nome, viene visualizzato un messaggio di errore simile al seguente:Migrating Report: /Reports/testThe item '/Reports/test' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports/test' already exists. |
Parametri | Sì | Sì | |
Sottoscrizioni | Sì | Sì | |
Impostazioni di cronologia | Sì | Sì | Viene eseguita la migrazione delle impostazioni di cronologia, ma NON dei dettagli della cronologia. |
opzioni di elaborazione | Sì | Sì | |
opzioni di aggiornamento della cache | Sì | Sì | Le impostazioni dipendenti vengono migrate come parte di un elemento del catalogo. Di seguito è riportato un esempio dello script relativo alla migrazione di un report (con estensione rdl) e delle impostazioni correlate, ad esempio le opzioni di aggiornamento della cache: Migrazione di parametri per il report TitleOnly.rdl: 0 elementi trovati. Migrazione di sottoscrizioni per il report TitleOnly.rdl: 1 elemento trovato. Migrazione della sottoscrizione Salva in \\server\public\savedreports as TitleOnly ... SUCCESSO Migrazione delle impostazioni della cronologia per il report TitleOnly.rdl ... SUCCESSO Migrazione delle opzioni di elaborazione per il report TitleOnly.rdl ... 0 elementi trovati. Migrazione delle opzioni di aggiornamento della cache per il report TitleOnly.rdl ... SUCCESSO Migrazione dei piani di aggiornamento della cache per il report TitleOnly.rdl: 1 elemento trovato. Migrazione del piano di aggiornamento della cache titleonly_refresh735amM2F ... SUCCESSO |
Piani di aggiornamento della cache | Sì | Sì | |
Immagini | Sì | Sì | |
Parti del report | Sì | Sì |
Autorizzazioni necessarie
Le autorizzazioni necessarie per leggere o scrivere elementi e risorse non sono le stesse per tutti i metodi utilizzati nello script. Nella tabella seguente sono riepilogati i metodi usati per ogni elemento o risorsa e vengono forniti collegamenti al contenuto correlato. Passare all'argomento specifico per visualizzare le autorizzazioni necessarie. Ad esempio nell'argomento del metodo ListChildren sono indicate le autorizzazioni necessarie:
Autorizzazioni necessarie per la modalità nativa: ReadProperties su Item
Autorizzazioni necessarie per la modalità SharePoint: ViewListItems
Elemento o risorsa | Source (Sorgente) | Destinazione |
---|---|---|
Elementi del catalogo | ListChildren GetProperties GetItemDataSources GetItemReferences GetDataSourceContents GetItemLink |
CreateCatalogItem SetItemDataSources GetItemReferences CreateDataSource CreateLinkedItem CreateFolder |
Ruolo | ListRoles GetRoleProperties |
CreateRole |
Criteri di sistema | GetSystemPolicies | SetSystemPolicies |
Pianificazione | ListSchedules | CreateSchedule |
Subscription | ListSubscriptions GetSubscriptionProperties GetDataDrivenSubscriptionProperties |
CreateSubscription CreateDataDrivenSubscription |
Piano di aggiornamento della cache | ListCacheRefreshPlans GetCacheRefreshPlanProperties |
CreateCacheRefreshPlan |
Parametri | GetItemParameters | SetItemParameters |
Opzioni di esecuzione | GetExecutionOptions | SetExecutionOptions |
Opzioni cache | GetCacheOptions | SetCacheOptions |
Impostazioni di cronologia | GetItemHistoryOptions | SetItemHistoryOptions |
Criteri degli elementi | GetPolicies | SetPolicies |
Per altre informazioni, vedere Confrontare ruoli e attività di Reporting Services con autorizzazioni e gruppi di SharePoint.
Come usare lo script
Scaricare il file script in una cartella locale, ad esempio c:\rss\ssrs_migration.rss.
Aprire un prompt dei comandi con privilegi amministrativi.
Passare alla cartella che contiene il file ssrs_migration.rss.
Eseguire il comando con i parametri appropriati per lo scenario di interesse.
Esempio di base, da server di report in modalità nativa a server di report in modalità nativa:
Nell'esempio seguente viene eseguita la migrazione del contenuto da Sourceserver in modalità nativa a Targetserverin modalità nativa.
rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"
Note sull'utilizzo:
Lo script viene eseguito in due passaggi.
Il primo passaggio è un controllo, per la restituzione di un elenco di elementi di cui verrà eseguita la migrazione, e il secondo passaggio è il processo di migrazione.
È possibile annullare lo script dopo il primo passaggio se si desidera semplicemente visualizzare il possibile elenco di migrazione oppure modificare i parametri. Le impostazioni dipendenti non sono elencate nel primo passaggio. Ad esempio, non sono elencate le opzioni della cache di un report, ma è elencato il report stesso.
Suggerimento
Se si vuole controllare solo un singolo server, usare lo stesso server per l'origine e la destinazione e ignorare i passaggi successivi al passaggio 1.
Per un utilizzo corretto delle informazioni di controllo del primo passaggio, esaminare i ruoli esistenti in entrambi i server in modalità nativa, quello di origine e quello di destinazione. Di seguito è riportato un esempio dell'elenco di controllo del primo passaggio. Si noti che l'elenco include una sezione dei ruoli, perché è stata usata l'opzione-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
SOURCE_URL e TARGET_URL devono essere URL di server di report validi che fanno riferimento al server di report di Reporting Services di origine e di destinazione. In modalità nativa, l'URL di un server di report è simile al seguente:
https://servername/reportserver
In modalità SharePoint l'URL è simile al seguente:
https://servername/_vti_bin/reportserver
La struttura di cartelle virtuale presentata all'utente in SharePoint potrebbe essere diversa da quella sottostante. Aprire
https://servername/_vti_bin/reportserver
ohttps://servername/sites/site_name/_vti_bin/reportserver
in un browser per vedere la struttura di cartelle non virtuale. Ciò può essere utile per impostare la cartella di origine e quella di destinazione su un valore diverso da "/", per un server in modalità SharePoint.Per le password non viene eseguita la migrazione ed è necessario reimmetterle, ad esempio per origini dati con le credenziali archiviate.
Descrizione dei parametri
Parametro | Descrizione | Obbligatorio |
---|---|---|
-s Source_URL | URL del server di report di origine | Sì |
-u dominio\password -p password | Credenziali per il server di origine. | FACOLTATIVO, se non viene impostato vengono utilizzate le credenziali predefinite |
-v st="SITE" | FACOLTATIVO Questo parametro viene utilizzato solo per i server di report in modalità SharePoint. | |
- v f="SOURCEFOLDER" | Impostato su "/" per eseguire la migrazione di tutti gli elementi o su un valore come "/cartella/sottocartella" per una migrazione parziale. Vengono copiati tutti gli elementi in questa cartella | FACOLTATIVO, l'impostazione predefinita è "/". |
-v ts="TARGET_URL" | URL del server RS di destinazione | |
-v tu="dominio\nomeutente" -v tp="password" | Credenziali per il server di destinazione. | FACOLTATIVO, se non viene impostato vengono utilizzate le credenziali predefinite. Nota: l'utente viene elencato come "autore" di pianificazioni condivise e come account "modificato da" per gli elementi del report nel server di destinazione. |
-v tst="SITE" | FACOLTATIVO Questo parametro viene utilizzato solo per i server di report in modalità SharePoint. | |
-v tf ="TARGETFOLDER" | Impostato su "/" per eseguire la migrazione al livello radice. Impostato su "/cartella/sottocartella" per effettuare la copia in una cartella già esistente. Tutto il contenuto di "SOURCEFOLDER" viene copiato in "TARGETFOLDER". | FACOLTATIVO, l'impostazione predefinita è "/". |
-v security= "True/False" | Se impostato su "False", gli elementi del catalogo di destinazione ereditano le impostazioni di sicurezza in base alle impostazioni del sistema di destinazione. Si tratta dell'impostazione consigliata per le migrazioni tra tipi di server di report diversi, ad esempio dalla modalità nativa alla modalità SharePoint. Se impostato su "True", lo script tenta di eseguire la migrazione delle impostazioni di sicurezza. | FACOLTATIVO, l'impostazione predefinita è "False". |
Altri esempi
Da server di report in modalità nativa a server di report in modalità nativa
Nell'esempio seguente viene eseguita la migrazione del contenuto da Sourceserver in modalità nativa a Targetserverin modalità nativa.
rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"
Nell'esempio seguente viene aggiunta l'opzione di sicurezza:
rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password" -v security="True"
Modalità nativa in modalità SharePoint - Sito radice
Nell'esempio seguente viene eseguita la migrazione da un server SourceServer in modalità nativa al "sito radice" di un server TargetServer in modalità SharePoint. Viene eseguita la migrazione delle cartelle "Reports" e "Data Sources" del server in modalità nativa come nuove raccolte nella distribuzione di SharePoint.
rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p Password -v ts="http://TargetServer/_vti_bin/ReportServer" -v tu="Domain\User" -v tp="Password"
Modalità nativa alla modalità SharePoint -'bi' raccolta siti
Nell'esempio seguente viene eseguita la migrazione del contenuto da un server in modalità nativa a un server SharePoint contenente una raccolta siti "sites/bi" e una raccolta di documenti condivisi. Lo script crea cartelle nella raccolta di documenti di destinazione. Ad esempio, lo script crea cartelle "Reports" e "Data Sources" nella raccolta documenti di destinazione.
rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p Password -v ts="http://TargetServer/sites/bi/_vti_bin/reportserver" -v tst="sites/bi" -v tf="Shared Documents" -v tu="Domain\User" -v tp="Password"
Modalità SharePoint in modalità SharePoint -'bi' raccolta siti
Nell'esempio seguente viene eseguita la migrazione del contenuto:
Da un server SourceServer SharePoint contenente una raccolta siti "sites/bi" e una raccolta di documenti condivisi.
A un server TargetServer SharePoint contenente una raccolta siti "sites/bi" e una raccolta di documenti condivisi.
rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/_vti_bin/reportserver -v st="sites/bi" -v f="Shared Documents" -u Domain\User1 -p Password -v ts="http://TargetServer/sites/bi/_vti_bin/reportserver" -v tst="sites/bi" -v tf="Shared Documents" -v tu="Domain\User" -v tp="Password"
Modalità nativa in modalità nativa - Macchina virtuale di Azure
Nell'esempio seguente viene eseguita la migrazione del contenuto:
Da un server di report SourceServerin modalità nativa.
A un server di report TargetServer in modalità nativa in cui viene eseguita una macchina virtuale Azure. TargetServer non è aggiunto al dominio di SourceServer e User2 è un amministratore della macchina virtuale di Azure TargetServer.
rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\user1 -p Password -v ts="http://ssrsnativeazure.cloudapp.net/ReportServer" -v tu="user2" -v tp="Password2"
Suggerimento
Per informazioni su come usare Windows PowerShell per creare server di report di Reporting Services nelle macchine virtuali Azure, vedere Usare PowerShell per creare una macchina virtuale di Azure con un server di report in modalità nativa.
Modalità SharePoint -'bi' raccolta siti in un server in modalità nativa in una macchina virtuale di Azure
Nell'esempio seguente viene eseguita la migrazione del contenuto:
Da un server di report SourceServer in modalità SharePoint contenente una raccolta siti "sites/bi" e una raccolta di documenti condivisi.
A un server di report TargetServer in modalità nativa in cui viene eseguita una macchina virtuale Azure. TargetServer non è aggiunto al dominio di SourceServer e User2 è un amministratore della macchina virtuale di Azure TargetServer.
rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://uetesta02/_vti_bin/reportserver -u user1 -p Password -v ts="http://ssrsnativeazure.cloudapp.net/ReportServer" -v tu="user2" -v tp="Passowrd2"
Verifica
Nella sezione sono riepilogati alcuni passaggi da eseguire nel server di destinazione per verificare la corretta migrazione di contenuto e criteri.
Pianificazioni
Per verificare le pianificazioni nel server di destinazione:
Modalità nativa
Passare a Gestione report nel server di destinazione.
Fare clic su Impostazioni sito nel menu principale.
Nel riquadro sinistro fare clic su Pianificazioni .
Modalità SharePoint:
Passare a Impostazioni sito.
Nel gruppo Reporting Services fare clic su Gestisci pianificazioni condivise.
Ruoli e gruppi
Modalità nativa
Aprire SQL Server Management Studio e connettersi al server di report in modalità nativa.
In Esplora oggetti fare clic su Sicurezza.
Fare clic su Ruoli.
Risoluzione dei problemi
Usare il flag di traccia –t per ricevere altre informazioni. Ad esempio, se si esegue lo script e viene visualizzato un messaggio simile al seguente
- Impossibile connettersi al server: http://< servername>/ReportServer/ReportService2010.asmx
Eseguire di nuovo lo script con il flag -t per visualizzare un messaggio simile al seguente:
- System.Exception: Impossibile connettersi al server: http:// servername>/ReportServer/ReportService2010.asmx ---> System.Net.WebException: La richiesta non è riuscita con stato HTTP 401: Non autorizzato.< in System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) in System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) in Microsoft.SqlServer.ReportingServices2010.ReportingService2010.IsSSLRequired() at Microsoft.ReportingServices.ScriptHost.Management2010Endpoint.PingService(String url, String userName, String password, String domain, Int32 timeout) in Microsoft.ReportingServices.ScriptHost.ScriptHost.DetermineServerUrlSecurity() --- Fine dell'analisi dello stack dell'eccezione interna ---
Vedere anche
RS.exe Utility (SSRS)
Confrontare ruoli e attività di Reporting Services con autorizzazioni e gruppi di SharePoint