Elencare i server di una farm SharePoint con PowerShell
Tramite il comando Get-SPServer di PowerShell è possibile elencare i server che compongono una farm SharePoint OnPrem
da un risultato simile al seguente
Dove si può vedere, nella colonna Version (con Role diverso da Invalid) che i server della farm non sono tutti allineati alla stessa versione di patch (13963885, 13963891 e 13963889).
Anche nella colonna NeedsUpgrade, viene indicato esplicitamente, che la farm richiede un upgrade.
Quindi è necessario eseguire lo SharePoint 2010 Products Configuration Wizard, su ogni server che compone la farm.
Per visualizzare solo i server della farm SharePoint si può filtrare la query per $_.Role -ne "Invalid"
Nota: lo script usa il metodo statico [System.Net.Dns]::GetHostByName() per ottenere l'indirizzo IP del server
PowerShell
# Add-PSSnapin Microsoft.SharePoint.PowerShell
Get-SPServer | Select Name, Version, Role, Status, CanUpgrade, NeedsUpgrade, NeedsUpgradeIncludeChildren, @{Label="IP";Expression={[System.Net.Dns]::GetHostByName($_.Name).AddressList[0].IPAddressToString}} | Format-Table -AutoSize
Text
Name Version Role Status CanUpgrade NeedsUpgrade NeedsUpgradeIncludeChildren IP
---- ------- ---- ------ ---------- ------------ --------------------------- --
smtp.sgart.local 167495 Invalid Online False True True 10.0.129.124
SharePointDB 7085403 Invalid Online False True True 10.0.128.127
SP2010-IDX 13963885 Application Online False True True 10.0.128.70
SP2010-FEA 13963891 Application Online False True True 10.0.128.71
SP2010-FEB 13963889 Application Online False True True 10.0.128.72
Anche nella colonna NeedsUpgrade, viene indicato esplicitamente, che la farm richiede un upgrade.
Quindi è necessario eseguire lo SharePoint 2010 Products Configuration Wizard, su ogni server che compone la farm.
Con "server che compone la farm" si intendo i server di Front-End (SP2010-FEA e SP2010-FEB) e quelli di application (SP2010-IDX). Più in generale tutti quelli che nella colonna Role hanno un valore diverso da Invalid. Escludendo quindi i server SQL e gli SMTP che hanno una loro gestione delle patch indipendente dalla farm SharePoint.
Per visualizzare solo i server della farm SharePoint si può filtrare la query per $_.Role -ne "Invalid"
PowerShell
Get-SPServer | Where-Object {$_.Role -ne "Invalid"} | Select Name, Version, Role, Status, CanUpgrade, NeedsUpgrade, NeedsUpgradeIncludeChildren, @{Label="IP";Expression={[System.Net.Dns]::GetHostByName($_.Name).AddressList[0].IPAddressToString}} | Format-Table -AutoSize
Text
Name Version Role Status CanUpgrade NeedsUpgrade NeedsUpgradeIncludeChildren IP
---- ------- ---- ------ ---------- ------------ --------------------------- --
SP2010-IDX 13963885 Application Online False True True 10.0.128.70
SP2010-FEA 13963891 Application Online False True True 10.0.128.71
SP2010-FEB 13963889 Application Online False True True 10.0.128.72
Nota: lo script usa il metodo statico [System.Net.Dns]::GetHostByName() per ottenere l'indirizzo IP del server
PowerShell
# prende solo il primo indirizzo IP
[System.Net.Dns]::GetHostByName("nomeServer").AddressList[0].IPAddressToString