Questo script PowerShell permette di elencare tutti i servizi di SharePoint presenti su ogni server con il relativo stato:

PowerShell

if($null -eq (Get-PSSnapin | ?{$_.Name -eq "Microsoft.SharePoint.PowerShell"})) {
  Write-Host "Loading...";
  Add-PSSnapin Microsoft.SharePoint.PowerShell 
}
$serverNamePrefix = "";  # eventuale prefisso per le colonne con lo stato nei server

$si = Get-SPServiceInstance
# trovo i server che ospitano i servizi
$uniqueServer = $si | select @{Label="ServerName";Expression={$_.Server.Name}} -Unique | Sort-Object ServerName
#$uniqueServer

# creo un array per salvare lo stato dei servizi
$resultTmp = @()  #array

$si | ForEach-Object {
    $item = $_;

    $obj = $resultTmp | Where-Object {$_.TypeName -eq $item.TypeName};
    
    if ($null -eq $obj) {
        # non esiste creo la entry (hash table)
        $obj = @{
            TypeName = $item.TypeName; 
            NeedsUpgrade = $false;
            Service = $item.Service.ToString(); 
        }
        # aggiungo una proprietà per ogni server presente nella farm
        $uniqueServer | ForEach-Object {
            $obj[$serverNamePrefix + $_.ServerName]= "*none*"
        }
        $resultTmp += $obj
    }
    # verifico se almeno su un server il servizio deve essere aggiornato
    if($obj.NeedsUpgrade -eq $false -and $item.NeedsUpgrade -eq $true){
        $obj.NeedsUpgrade = $true;
    }
    # assegno lo stato sullo specifico server (Disabled  / Online / *none*)        
    $obj[$serverNamePrefix + $_.Server.Name] = "$($item.status)"  #"$($item.status)$(if ($obj.NeedsUpgrade -eq $true) { '*' } else {''})";
}
# converto in oggetto PSObject
$result = @()
$resultTmp | ForEach-Object {
    $result += New-Object -TypeName PSObject -Property $_
}
# determino l'ordine di visualizzazione delle property nella select-object
$selectProps = @("TypeName");
$uniqueServer | ForEach-Object { $selectProps += $serverNamePrefix + $_.ServerName; }
$selectProps +=  "NeedsUpgrade"
$selectProps +=  "Service"
# ritorno il risultato
$result | Sort-Object TypeName | Select-Object -Property $selectProps | Format-Table -autosize | out-string
Il risultato è una tabella con il tipo di servizio (TypeName) e una serie di colonne, tante quanti sono i server della farm.
A questi campi si aggiunge la colonna NeedsUpgrade che diventa True se almeno un server ha lo stato impostato a true.
In ultimo la colonna Service con il nome del servizio.

Text

TypeName                                                      SP2010-IDX    SP2010-FEA     SP2010-FEB   NeedsUpgrade Service                                                     
--------                                                      ------------- -------------- -------------- ------------ -------                                                     
Access Database Service                                       Disabled      Online         Online                 True AccessServerWebService                                      
Application Registry Service                                  Disabled      Online         Online                 True ApplicationRegistryService                                  
Business Data Connectivity Service                            Online        Online         Online                 True BdcService                                                  
Central Administration                                        Disabled      Online         Online                 True SPWebService Name=WSS_Administration                        
Claims to Windows Token Service                               Disabled      Online         Online                 True SPWindowsTokenService Name=c2wts                            
Document Conversions Launcher Service                         Disabled      Disabled       Disabled               True LauncherService Name=DCLauncher14                           
Document Conversions Load Balancer Service                    Disabled      Disabled       Disabled               True LoadBalancerService Name=DCLoadBalancer14                   
Excel Calculation Services                                    Disabled      Online         Online                 True ExcelServerWebService                                       
Lotus Notes Connector                                         Disabled      Disabled       Disabled               True NotesWebService                                             
Managed Metadata Web Service                                  Disabled      Online         Disabled               True MetadataWebService                                          
Microsoft SharePoint Foundation Incoming E-Mail               Disabled      Online         Online                 True SPIncomingEmailService                                      
Microsoft SharePoint Foundation Sandboxed Code Service        Disabled      Online         Disabled               True SPUserCodeService Name=SPUserCodeV4                         
Microsoft SharePoint Foundation Subscription Settings Service Disabled      Disabled       Disabled               True SPSubscriptionSettingsService                               
Microsoft SharePoint Foundation Web Application               Disabled      Online         Online                 True SPWebService                                                
Microsoft SharePoint Foundation Workflow Timer Service        Disabled      Online         Online                 True SPWorkflowTimerService Name=spworkflowtimerv4               
PerformancePoint Service                                      Disabled      Online         Online                 True BIMonitoringService                                         
PowerPoint Service                                            Online        Online         Online                 True PowerPointWebService                                        
Search Query and Site Settings Service                        Disabled      Online         Online                 True SearchQueryAndSiteSettingsService                           
Secure Store Service                                          Disabled      Online         Online                 True SecureStoreService                                          
SharePoint Foundation Help Search                             *none*        Online         *none*                 True SPSearchService Name=SPSearch4                              
SharePoint Foundation Search                                  Disabled      *none*         Disabled               True SPSearchService Name=SPSearch4                              
SharePoint Server Search                                      Online        Online         Online                 True SearchService Name=OSearch14                                
User Profile Service                                          Online        Online         Online                 True UserProfileService                                          
User Profile Synchronization Service                          Disabled      Online         Disabled               True ProfileSynchronizationService Name=FIMSynchronizationService
Visio Graphics Service                                        Disabled      Online         Disabled               True VisioGraphicsService                                        
Web Analytics Data Processing Service                         Disabled      Disabled       Disabled               True WebAnalyticsService Name=WebAnalyticsService                
Web Analytics Web Service                                     Disabled      Disabled       Online                 True WebAnalyticsWebService                                      
Word Automation Services                                      Disabled      Online         Online                 True WordService                                                 
Word Viewing Service                                          Online        Online         Online                 True ConversionService                                           
Su ogni server il servizio può essere Online (attivo/started) o Disabled (disabilitato/stopped), ma a volte non è proprio presente su quel server *none*.
Questo risultato equivale alla visualizzazione che si ha sulla Central Administration alla pagina /_admin/Server.aspx, ma in più mostra una visione di insieme con lo stato del servizio su tutti i server contemporaneamente.

In alternativa a out-string si può usare Out-GridView che permette di visualizzare il risultato in tabella dentro una finestra windows:

PowerShell

# ritorno il risultato in finestra
$result | Sort-Object TypeName | Select-Object -Property $selectProps | Out-GridView
Tags:
PowerShell199 SharePoint497 SharePoint 2010224 SharePoint 2013136 SharePoint 201667 SharePoint 201917
Potrebbe interessarti anche: