Configurare un'applicazione di servizio mediante uno script di Windows PowerShell (SharePoint Server 2010)

 

Si applica a: SharePoint Foundation 2010, SharePoint Server 2010

Ultima modifica dell'argomento: 2016-11-30

Questo articolo illustra il modo in cui un utente può utilizzare uno script di Windows PowerShell per replicare le funzionalità di Configurazione guidata Prodotti SharePoint in Microsoft SharePoint Server 2010.

Nota

Lo script di Windows PowerShell seguente replica la maggior parte delle funzionalità di Configurazione guidata Prodotti SharePoint, ad eccezione del servizio Registro applicazioni e del connettore Lotus Notes. Per configurare entrambi i servizi, vedere rispettivamente Amministrazione del servizio Registro applicazioni (SharePoint Server 2010) e Configure and use the Lotus Notes connector (SharePoint Server 2010).

Per creare e configurare la farm, è necessario eseguire Configurazione guidata Prodotti SharePoint. Questa procedura guidata automatizza alcune attività di configurazione, incluse la creazione del database di configurazione, l'installazione di servizi, la creazione di applicazioni di servizio e proxy di applicazioni di servizio e la creazione del sito Web Amministrazione centrale.

Per ulteriori informazioni sulla distribuzione di una farm, vedere Più server per una farm su tre livelli (SharePoint Server 2010).

Uno dei limiti dell'utilizzo di Configurazione guidata Prodotti SharePoint consiste nel fatto che per eseguire il provisioning dei servizi nella farm, è necessario eseguire consecutivamente tutti i passaggi fino al completamento di Configurazione guidata Prodotti SharePoint. In alternativa, l'utilizzo dello script di Windows PowerShell consente a un amministratore di specificare in modo selettivo i servizi da eseguire, copiando e incollando il codice appropriato in un file con estensione ps1 separato.

Alcuni servizi dipendono gli uni dagli altri per l'esecuzione ed è pertanto necessario che tali servizi siano inclusi insieme nella versione dello script creata. Ad esempio, per utilizzare la creazione di report di Web Analytics, il servizio Web Analytics necessita dell'avvio del servizio informazioni sullo stato. Nella tabella seguente vengono illustrati i servizi e le rispettive dipendenze.

Nome servizio Servizio dipendente

Servizio di accesso

Nessuno

Servizio di integrazione applicativa dei dati

Nessuno

Applicazione Excel Services

Nessuno

Servizio Web metadati gestiti

Nessuno

PerformancePoint Service

Excel Services

Servizio informazioni sullo stato

Servizio di ricerca di SharePoint Server

Servizio per raccolta dati di utilizzo e integrità

Servizio informazioni sullo stato

Nessuno

Servizio di archiviazione sicura

Nessuno

Servizio per raccolta dati di utilizzo e integrità

Nessuno

Servizio di sincronizzazione dei profili utente

Nessuno

Servizio grafica di Visio

Servizio informazioni sullo stato

Servizio Web Analytics

Servizio informazioni sullo stato

Word Automation Services

Nessuno

Per configurare un'applicazione di servizio mediante uno script di Windows PowerShell

  1. Verificare che siano soddisfatti i requisiti minimi seguenti:

  2. Copiare il codice seguente e incollarlo in un editor di testo, ad esempio il Blocco note.

    Nota

    Per $appPoolUserName viene utilizzato un account di esempio, CONTOSO\SAAppPoolAccount, che deve essere modificato in un account valido dell'organizzazione.

    ################################################################################ 
    ## This script replicates most of the functionality found in the SharePoint Products Configuration Wizard## 
    ################################################################################ 
    
    
    Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue 
    
    ## Settings you may want to change ## 
    $databaseServerName = "sp2010dev.contoso.com"
    $searchServerName = $databaseServerName
    $saAppPoolName = "SharePoint Web Services"
    $appPoolUserName = "CONTOSO\SAAppPoolAccount"
    
    
    ## Service Application Service Names ## 
    $accesssSAName = "Access Services"
    $bcsSAName = "Business Data Connectivity Service"
    $excelSAName = "Excel Services Application"
    $metadataSAName = "Managed Metadata Web Service"
    $performancePointSAName = "PerformancePoint Service"
    $searchSAName = "SharePoint Server Search"
    $stateSAName = "State Service"
    $secureStoreSAName = "Secure Store Service"
    $usageSAName = "Usage and Health Data Collection Service"
    $userProfileSAName = "User Profile Synchronization Service"
    $visioSAName = "Visio Graphics Service"
    $WebAnalyticsSAName = "Web Analytics Service"
    $WordAutomationSAName = "Word Automation Services"
    
    
    
    $saAppPool = Get-SPServiceApplicationPool -Identity $saAppPoolName -EA 0 
    if($saAppPool -eq $null) 
    { 
      Write-Host "Creating Service Application Pool..."
    
      $appPoolAccount = Get-SPManagedAccount -Identity $appPoolUserName -EA 0 
      if($appPoolAccount -eq $null) 
      { 
          Write-Host "Please supply the password for the Service Account..."
          $appPoolCred = Get-Credential $appPoolUserName
          $appPoolAccount = New-SPManagedAccount -Credential $appPoolCred -EA 0 
      } 
    
      $appPoolAccount = Get-SPManagedAccount -Identity $appPoolUserName -EA 0 
    
      if($appPoolAccount -eq $null) 
      { 
        Write-Host "Cannot create or find the managed account $appPoolUserName, please ensure the account exists."
        Exit -1 
      } 
    
      New-SPServiceApplicationPool -Name $saAppPoolName -Account $appPoolAccount -EA 0 > $null
    
    } 
    
    
    
    
    Write-Host "Creating Usage Service and Proxy..."
    $serviceInstance = Get-SPUsageService
    New-SPUsageApplication -Name $usageSAName -DatabaseServer $databaseServerName -DatabaseName "UsageDB" -UsageService $serviceInstance > $null
    
    
    
    
    Write-Host "Creating Access Services and Proxy..."
    New-SPAccessServiceApplication -Name $accesssSAName -ApplicationPool $saAppPoolName > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "Access Database Service"} | Start-SPServiceInstance > $null
    
    
    
    
    Write-Host "Creating BCS Service and Proxy..."
    New-SPBusinessDataCatalogServiceApplication -Name $bcsSAName -ApplicationPool $saAppPoolName -DatabaseServer $databaseServerName -DatabaseName "BusinessDataCatalogDB" > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "Business Data Connectivity Service"} | Start-SPServiceInstance > $null
    
    
    
    
    Write-Host "Creating Excel Service..."
    New-SPExcelServiceApplication -name $excelSAName -ApplicationPool $saAppPoolName > $null
    Set-SPExcelFileLocation -Identity "http://" -ExcelServiceApplication $excelSAName -ExternalDataAllowed 2 -WorkbookSizeMax 10 -WarnOnDataRefresh:$true 
    Get-SPServiceInstance | where-object {$_.TypeName -eq "Excel Calculation Services"} | Start-SPServiceInstance > $null
    
    
    
    
    Write-Host "Creating Metadata Service and Proxy..."
    New-SPMetadataServiceApplication -Name $metadataSAName -ApplicationPool $saAppPoolName -DatabaseServer $databaseServerName -DatabaseName "MetadataDB" > $null
    New-SPMetadataServiceApplicationProxy -Name "$metadataSAName Proxy" -DefaultProxyGroup -ServiceApplication $metadataSAName > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "Managed Metadata Web Service"} | Start-SPServiceInstance > $null
    
    
    
    
    Write-Host "Creating Performance Point Service and Proxy..."
    New-SPPerformancePointServiceApplication -Name $performancePointSAName -ApplicationPool $saAppPoolName > $null
    New-SPPerformancePointServiceApplicationProxy -Default -Name "$performancePointSAName Proxy" -ServiceApplication $performancePointSAName > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "PerformancePoint Service"} | Start-SPServiceInstance > $null
    
    
    ##START SEARCH 
    
    Write-Host "Creating Search Service and Proxy..."
    Write-Host "  Starting Services..."
    Start-SPEnterpriseSearchServiceInstance $searchServerName
    Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $searchServerName
    
    Write-Host "  Creating Search Application..."
    $searchApp = New-SPEnterpriseSearchServiceApplication -Name $searchSAName -ApplicationPool $saAppPoolName -DatabaseServer $databaseServerName -DatabaseName "SearchDB"
    $searchInstance = Get-SPEnterpriseSearchServiceInstance $searchServerName
    
    Write-Host "  Creating Administration Component..."
    $searchApp | Get-SPEnterpriseSearchAdministrationComponent | Set-SPEnterpriseSearchAdministrationComponent -SearchServiceInstance $searchInstance
    
    
    ##Crawl 
    Write-Host "  Creating Crawl Component..."
    $InitialCrawlTopology = $searchApp | Get-SPEnterpriseSearchCrawlTopology -Active
    $CrawlTopology = $searchApp | New-SPEnterpriseSearchCrawlTopology
    $CrawlDatabase = ([array]($searchApp | Get-SPEnterpriseSearchCrawlDatabase))[0] 
    $CrawlComponent = New-SPEnterpriseSearchCrawlComponent -CrawlTopology $CrawlTopology -CrawlDatabase $CrawlDatabase -SearchServiceInstance $searchInstance
    $CrawlTopology | Set-SPEnterpriseSearchCrawlTopology -Active
    
    Write-Host -ForegroundColor white "  Waiting for the old crawl topology to become inactive" -NoNewline
    do {write-host -NoNewline .;Start-Sleep 6;} while ($InitialCrawlTopology.State -ne "Inactive") 
    $InitialCrawlTopology | Remove-SPEnterpriseSearchCrawlTopology -Confirm:$false
    Write-Host
    
    
    
    ##Query 
    Write-Host "  Creating Query Component..."
    $InitialQueryTopology = $searchApp | Get-SPEnterpriseSearchQueryTopology -Active
    $QueryTopology = $searchApp | New-SPEnterpriseSearchQueryTopology -Partitions 1  
    $IndexPartition= (Get-SPEnterpriseSearchIndexPartition -QueryTopology $QueryTopology) 
    $QueryComponent = New-SPEnterpriseSearchQuerycomponent -QueryTopology $QueryTopology -IndexPartition $IndexPartition -SearchServiceInstance $searchInstance
    $PropertyDatabase = ([array]($searchApp | Get-SPEnterpriseSearchPropertyDatabase))[0]  
    $IndexPartition | Set-SPEnterpriseSearchIndexPartition -PropertyDatabase $PropertyDatabase
    $QueryTopology | Set-SPEnterpriseSearchQueryTopology -Active
    
    
    Write-Host "  Creating Proxy..."
    $searchAppProxy = New-SPEnterpriseSearchServiceApplicationProxy -Name "$searchSAName Proxy" -SearchApplication $searchSAName > $null
    
    
    #####END SEARCH 
    
    
    Write-Host "Creating State Service and Proxy..."
    New-SPStateServiceDatabase -Name "StateServiceDB" -DatabaseServer $databaseServerName | New-SPStateServiceApplication -Name $stateSAName | New-SPStateServiceApplicationProxy -Name "$stateSAName Proxy" -DefaultProxyGroup > $null
    
    
    
    
    Write-Host "Creating Secure Store Service and Proxy..."
    New-SPSecureStoreServiceapplication -Name $secureStoreSAName -Sharing:$false -DatabaseServer $databaseServerName -DatabaseName "SecureStoreServiceAppDB" -ApplicationPool $saAppPoolName -auditingEnabled:$true -auditlogmaxsize 30 | New-SPSecureStoreServiceApplicationProxy -name "$secureStoreSAName Proxy" -DefaultProxygroup > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "Secure Store Service"} | Start-SPServiceInstance > $null
    
    
    
    
    Write-Host "Creating User Profile Service and Proxy..."
    $userProfileService = New-SPProfileServiceApplication -Name $userProfileSAName -ApplicationPool $saAppPoolName -ProfileDBServer $databaseServerName -ProfileDBName "ProfileDB" -SocialDBServer $databaseServerName -SocialDBName "SocialDB" -ProfileSyncDBServer $databaseServerName -ProfileSyncDBName "SyncDB"
    New-SPProfileServiceApplicationProxy -Name "$userProfileSAName Proxy" -ServiceApplication $userProfileService -DefaultProxyGroup > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "User Profile Service"} | Start-SPServiceInstance > $null
    
    
    
    
    Write-Host "Creating Visio Graphics Service and Proxy..."
    New-SPVisioServiceApplication -Name $visioSAName -ApplicationPool $saAppPoolName > $null
    New-SPVisioServiceApplicationProxy -Name "$visioSAName Proxy" -ServiceApplication $visioSAName > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "Visio Graphics Service"} | Start-SPServiceInstance > $null
    
    
    
    
    Write-Host "Creating Web Analytics Service and Proxy..."
    $stagerSubscription = "<StagingDatabases><StagingDatabase ServerName='$databaseServerName' DatabaseName='StagerDB'/></StagingDatabases>"
    $reportingSubscription = "<ReportingDatabases><ReportingDatabase ServerName='$databaseServerName' DatabaseName='WarehouseDB'/></ReportingDatabases>" 
    New-SPWebAnalyticsServiceApplication -Name $WebAnalyticsSAName -ApplicationPool $saAppPoolName -ReportingDataRetention 20 -SamplingRate 100 -ListOfReportingDatabases $reportingSubscription -ListOfStagingDatabases $stagerSubscription > $null  
    New-SPWebAnalyticsServiceApplicationProxy -Name "$WebAnalyticsSAName Proxy" -ServiceApplication $WebAnalyticsSAName > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "Web Analytics Web Service"} | Start-SPServiceInstance > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "Web Analytics Data Processing Service"} | Start-SPServiceInstance > $null
    
    
    
    Write-Host "Creating Word Conversion Service and Proxy..."
    New-SPWordConversionServiceApplication -Name $WordAutomationSAName -ApplicationPool $saAppPoolName -DatabaseServer $databaseServerName -DatabaseName "WordAutomationDB" -Default > $null
    Get-SPServiceInstance | where-object {$_.TypeName -eq "Word Automation Services"} | Start-SPServiceInstance > $null
    
  3. Salvare il file assegnandogli il nome Services.ps1.

    Nota

    È possibile utilizzare un nome diverso, ma sarà comunque necessario effettuare il salvataggio come file di testo con codifica ANSI, la cui estensione è ps1.

  4. Fare clic sul pulsante Start e scegliere Tutti i programmi.

  5. Fare clic su Prodotti Microsoft SharePoint 2010.

  6. Fare clic su SharePoint 2010 Management Shell.

  7. Passare alla directory in cui è stato salvato il file.

  8. Al prompt dei comandi di Windows PowerShell digitare il comando seguente:

    ./Services.ps1 
    

Per ulteriori informazioni sugli script e i file con estensione ps1 di Windows PowerShell, vedere la pagina relativa all'esecuzione di script di Windows PowerShell (le informazioni potrebbero essere in lingua inglese).