Script di esempio rs.exe di Reporting Services per la copia di contenuto tra server di report

Si applica a: SQL Server Reporting Services (2008 R2 e e versioni successive) SharePoint Server di report di Power BI

Questo articolo include e descrive uno script RSS di Reporting Services di esempio che copia elementi di contenuto e impostazioni da server di report SQL Server Reporting Services a un altro server di report tramite 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.

Nota

È anche disponibile il modulo PowerShell ReportingServicesTools open source.

Scaricare lo script ssrs_migration.rss

Scaricare lo script dalla pagina Reporting Services RS.exe migration script (Script di migrazione RS.exe di Reporting Services) del sito GitHub in una cartella locale. Per altre informazioni, vedere la sezione Come usare lo script in questo articolo.

Scenari supportati

Lo script supporta server di report in modalità nativa e in modalità SharePoint. Lo script supporta le versioni di server di report SQL Server 2008 R2 (10.50.x) e successive e Server di report di Power BI.

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 SQL Server 2008 R2 (10.50.x) in modalità nativa a un server di report SQL Server 2012 SP1 (11.0.3x) in modalità SharePoint. È 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 Nativa
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.

Articolo Migrazione completata 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 è basata su singoli account di accesso utente, quindi il servizio di scripting non ha accesso al contenuto di "Report personali" per utenti diversi dal parametro –u usato per eseguire lo script RSS. "Report personali", poi, non è una funzionalità della modalità SharePoint di Reporting Services e gli elementi nelle cartelle non possono essere copiati in un ambiente SharePoint. Di conseguenza, lo script non copia gli elementi del report presenti nelle cartelle "Report personali" in un server di report di origine in modalità nativa.

Per eseguire la migrazione del contenuto in cartelle "Report personali" con questo script, completare la procedura seguente:

1. Creare nuove cartelle nel portale Web. È facoltativamente possibile creare cartelle o sottocartelle per ogni utente.
2. Effettuare l'accesso con l'account di un utente con contenuto in "Report personali".
3. Nel portale Web selezionare la cartella Report personali.
4. Selezionare la visualizzazione Dettagli per la cartella.
5. Selezionare i singoli report che si intende copiare.
6. Selezionare Sposta sulla barra degli strumenti del portale Web.
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 Viene eseguita la migrazione delle impostazioni di cronologia, ma NON dei dettagli della cronologia.
Pianificazioni 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 a questo:

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.
Ruoli e criteri di sistema Per impostazione predefinita, lo script non copia lo schema di autorizzazioni personalizzate da un server a un altro. In base al comportamento predefinito, gli elementi vengono copiati nel server di destinazione con il flag "inherit parent permissions" 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 sono rispettivamente in modalità nativa e in modalità SharePoint, e si usa l'opzione SECURITY, lo script tenta di eseguire il mapping dei ruoli e dei gruppi predefiniti in base al confronto riportato nell'articolo Confrontare ruoli e attività di Reporting Services con autorizzazioni e gruppi di SharePoint. 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: otto 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.

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 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 a questo:

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
Cartella 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 a questo:

Migrating Folder: /Reports ... FAILURE: The item '/Reports' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports' already exists.
Report 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 a questo:

Migrating Report: /Reports/testThe item '/Reports/test' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports/test' already exists.
Report Power BI No No Disponibile solo con Server di report di Power BI

I comandi di PowerShell in Reporting Services, ad esempio Out-RsRestFolderContent e Write-RsRestFolderContent, possono essere usati come alternativa.
Parametri
Sottoscrizioni
Impostazioni di cronologia Viene eseguita la migrazione delle impostazioni di cronologia, ma NON dei dettagli della cronologia.
Opzioni di elaborazione
Opzioni di aggiornamento cache Le impostazioni dipendenti vengono migrate come parte di un elemento del catalogo. Di seguito è riportato un esempio di output 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 come TitleOnly ... SUCCESS
- Migrazione delle impostazioni di cronologia per il report TitleOnly.rdl... SUCCESS
- 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... SUCCESS
- Migrazione dei piani di aggiornamento della cache per il report TitleOnly.rdl: 1 elemento trovato.
- Migrazione del piano di aggiornamento della cache titleonly_refresh735amM2F... SUCCESS
Piani di aggiornamento della cache
Immagini
Parti del report
KPI No No I comandi di PowerShell per Reporting Services, ad esempio Out-RsRestFolderContent e Write-RsRestFolderContent, possono essere usati come alternativa.
Report per dispositivi mobili No No I comandi di PowerShell per Reporting Services, ad esempio Out-RsRestFolderContent e Write-RsRestFolderContent, possono essere usati come alternativa.
Cartelle di lavoro di Excel No No Disponibile solo con Server di report di Power BI

È possibile usare i comandi di PowerShell per Reporting Services, ad esempio Out-RsRestFolderContent e Write-RsRestFolderContent, come alternativa.

Nota

Le parti del report sono deprecate per tutte le versioni di SQL Server Reporting Services a partire da SQL Server Reporting Services 2019 e tutte le versioni di Server di report di Power BI a partire da Server di report di Power BI settembre 2022.

Nota

SQL Server Mobile Report Publisher è deprecato per tutte le versioni di SQL Server Reporting Services dopo SQL Server Reporting Services 2019. È sospeso a partire da SQL Server Reporting Services 2022 e Server di report di Power BI.

Autorizzazioni necessarie

Le autorizzazioni necessarie per leggere o scrivere elementi e risorse non sono le stesse per tutti i metodi usati nello script. Nella tabella seguente sono riepilogati i metodi usati per ogni elemento o risorsa e vengono forniti collegamenti al contenuto correlato. Passare all'articolo specifico per visualizzare le autorizzazioni necessarie. Ad esempio nell'arricolo del metodo ListChildren sono indicate le autorizzazioni necessarie:

  • Autorizzazioni necessarie per la modalità nativa: ReadProperties sull'elemento

  • Autorizzazioni necessarie per la modalità SharePoint: ViewListItems

Elemento o risorsa Source Target
Articoli di catalogo ListChildren

GetProperties

GetItemDataSources

GetItemReferences

GetDataSourceContents

GetItemLink
CreateCatalogItem

SetItemDataSources

GetItemReferences

CreateDataSource

CreateLinkedItem

CreateFolder
Ruolo ListRoles

GetRoleProperties
CreateRole
Criteri di sistema GetSystemPolicies SetSystemPolicies
Programmazione 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

  1. Scaricare il file script in una cartella locale, ad esempio c:\rss\ssrs_migration.rss.

  2. Aprire un prompt dei comandi con privilegi amministrativi.

  3. Passare alla cartella che contiene il file ssrs_migration.rss.

  4. 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 https://SourceServer/ReportServer -u Domain\User -p password -v ts="https://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 viene 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

    Per controllare 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 ha l'aspetto di questo URL:

    • https://servername/reportserver

    In modalità SharePoint l'URL ha l'aspetto di questo URL:

    • 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 o https://servername/sites/site_name/_vti_bin/reportserver in un browser per vedere la struttura di cartelle non virtuale. Questa struttura è 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 credenziali archiviate.

Descrizione del parametro

Parametro Descrizione Richiesto
-s Source_URL URL del server di report di origine
-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. Questa 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 https://SourceServer/ReportServer -u Domain\User -p password -v ts="https://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 https://SourceServer/ReportServer -u Domain\User -p password -v ts="https://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password" -v security="True"  

Da modalità nativa a 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.

Screenshoh che mostra le opzioni di menu Origini dati e Report evidenziate.

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"  

Da modalità nativa a modalità SharePoint - raccolta siti "bi"

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 "Report" e "Origini dati" nella raccolta documenti di destinazione.

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"  

Da modalità SharePoint a modalità SharePoint - raccolta siti "bi"

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 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"  

Da modalità nativa a modalità nativa - macchina virtuale di Azure

L'esempio seguente esegue la migrazione del contenuto da un server di report in modalità nativa SourceServer a un server di report in modalità nativa TargetServer in esecuzione su una macchina virtuale di Azure. TargetServer non viene unito al dominio di SourceServer e User2 è un amministratore di TargetServer nella macchina virtuale Azure.

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"  

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 - raccolta siti "bi" in un server in modalità nativa su una macchina virtuale Azure.

Nell'esempio seguente viene eseguita la migrazione del contenuto da SourceServer un server di report in modalità SharePoint contenente una raccolta siti "sites/bi" e una raccolta di documenti condivisi a un server di report in modalità nativa TargetServer in esecuzione su una macchina virtuale Azure. TargetServer non viene unito al dominio di SourceServer e User2 è un amministratore di TargetServer nella macchina virtuale Azure.

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

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

  1. Aprire il portale web nel server di destinazione.

  2. Scegliere Impostazioni sito dal menu principale.

  3. Nel riquadro sinistro selezionare Pianificazioni.

Modalità SharePoint:

  1. Passare a Impostazioni sito.

  2. Nel gruppo Reporting Services, selezionare Gestisci pianificazioni condivise.

Ruoli e gruppi

Modalità nativa

  1. Aprire SQL Server Management Studio e connettersi al server di report in modalità nativa.

  2. In Esplora oggetti, selezionare Sicurezza.

  3. Selezionare 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: https://\<servername>/ReportServer/ReportService2010.asmx.

Eseguire nuovamente lo script con il flag –t per visualizzare un messaggio simile a questo:

  • 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à RS.exe (SSRS)
Confrontare ruoli e attività di Reporting Services con autorizzazioni e gruppi di SharePoint