Luca Annuiti

il mio Blog personale su Virtualizzazione, SharePoint, Programmazione e ...

Come rinominare un Server SharePoint 2010

Per rinominare un server SharePoint 2010 ci sono due alternative :

  1. Usare Windows PowerShell con il comando Rename-SPServer e successivamente cambiare manualmente il nome della macchina;
    questa è la sintassi del comando :
    Rename-SPServer –Identity "oldName" –Name "newName" 
    (nel caso non conoscessimo il nome del server SharePoint lo si può recuperare facilmente tramite il comando Get-SPServer)
  2. Nel caso invece la macchina sia già stata rinominata (ad esempio se abbiamo clonato una Virtual Machine) è necessario invece utilizzare il "vecchio" tool STSADM da riga di comando.
    Posizionarsi nella directory:
    %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\14\Bin\
    e digitare il seguente comando :
    stsadm -o renameserver -oldservername -newservername

Ultima passaggio : ricordatevi di modificare nell' Amministrazione Centrale di SharePoint le impostazioni alla voce Configura mapping di accesso alternativo.

NB : Ovviamente è necessario avere accesso al server con un'utente che faccia parte del gruppo Amministratori Locali.

Usare Powershell per calcolare la dimensione di una site collection di SharePoint 2010

Utilizzando la proprietà Usage del comando Get-SpSite è possibile calcolare lo spazio utilizzando da una determinata site collection.

Digitando questi comandi :

$sc = Get-SpSite http://myurl

$sc.Usage

otteniamo il seguente risultato :

 

Storage           : 672356355
Bandwidth    : 0
Visits            : 0
Hits              : 0
DiscussionStorage : 0

 

La visualizzazione del risultato non è molto "user friendly", ma è facilmente manipolabile per ottenere i valori in MB ordinati in base alla dimensione in questo modo :

Get-SPSite | select url, @{Label="Size in MB";Expression={$_.Usage.Storage/1MB}} | Sort-Object -Descending -Property "Size in MB"

Possiamo poi integrare questo comando in uno script più complicato per inviare ad esempio un report con la dimensione di tutte le site collection presenti sui nostri server.

Esportare tutte le solution da una farm SharePoint 2010 tramite Powershell

Ecco un semplice script powershell che ci permette di esportare tutte le solution presenti in una farm di SharePoint :

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue 
# imposto la cartella di destinazione
$ExportFolder = "c:\Projects\exported-solution"


if((Test-Path $ExportFolder) -eq $False) #Controllo se la cartella di destinazione esiste


#Se la cartella non esiste la creo
New-Item $ExportFolder -type Directory | out-null
Write-Host "La Cartella di destinazione è stata creata" -fore green 

else
{
Write-Host "La Cartella di destinazione è già presente" -fore green


#Esporto tutte le solution della farm nella cartella di destinazione
(Get-SPFarm).Solutions | where{$_.Deployed -ne $null} | ForEach-Object{$solution = $ExportFolder + "\" + $_.Name; $_.SolutionFile.SaveAs($solution); Write-Host "Exporting $solution"}  

Write-Host "Tutte le solution sono state esportate in $ExportFolder, premere un tasto per continuare" -fore green 

Aggiungere e modificare Colonne del sito in SharePoint utilizzando PowerShell

Questi utili comandi PowerShell ci permettono di aggiungere e modificare Colonne del sito in SharePoint.

Aggiungere un nuovo campo speficando le proprietà in formato XML ( definizione dello schema XML disponibile all'indirizzo http://msdn.microsoft.com/en-us/library/ms437580.aspx ) :

$site = Get-SPSite -Identity "http://mywebapplication/"
$web = $site.RootWeb 

$fieldXML = '<Field Type="Text"
Name="CustomSiteColumn"
Description="This is a my Site Column."
DisplayName="my Site Column"
Group="my Site Column"
Hidden="FALSE"
Required="FALSE"
ShowInDisplayForm="TRUE"
ShowInEditForm="TRUE"
ShowInListSettings="TRUE"
ShowInNewForm="TRUE"></Field>' 

$web.Fields.AddFieldAsXml($fieldXML)
$web.Dispose()
$site.Dispose()

Aggiungere un nuovo campo specificando solo nome e tipo :

$site = Get-SPSite -Identity "http://mywebapplication/"
$web = $site.RootWeb 
$web.Fields.Add("CustomSiteColumn",[Microsoft.SharePoint.SPFieldType]::Text,$true)
$web.Dispose()
$site.Dispose()

Modificare le proprietà di un campo ( fare sempre riferimento allo schema XML disponibile all'indirizzo http://msdn.microsoft.com/en-us/library/ms437580.aspx in quanto alcune delle proprietà non sono modificabili ) :

$site = Get-SPSite -Identity "http://mywebapplication/"
$web = $site.RootWeb 
$field=$web.Fields["my Site Column"]
$field.Type= "Choice"
$field.Update($true)
$web.Dispose()
$site.Dispose()

Riporto inoltre questo script che ci permette di esportare in formato XML tutte le Colonne del nostro sito :

$sourceWeb = Get-SPWeb http://mywebapplication
$xmlFilePath = "C:\SharePoint\my-SiteColumns.xml"

#Create Export Files
New-Item $xmlFilePath -type file -force

#Export Site Columns to XML file
Add-Content $xmlFilePath ""
Add-Content $xmlFilePath "`n"
$sourceWeb.Fields | ForEach-Object {
   if ($_.Group -eq "Custom Columns") {
       Add-Content $xmlFilePath $_.SchemaXml
   }
}
Add-Content $xmlFilePath ""

$sourceWeb.Dispose()

Gestire solution con PowerShell su SharePoint 2010

Questo è l'elenco dei comandi che ci permettono di gestire le soluzioni (installazione,deploy, rimozione, ecc) nella nostra farm di SharePoint tramite PowerShell ( per maggiori informazioni sui parametri usare il comando "Get-Help <nomecomando>" ).

Aggiungere la soluzione alla farm :
Add-SPSolution c:\SharePointSolution\SharePointSolution.wsp

Deploy della soluzione :
Install-SPSolution –Identity SharePointSolution.wsp –WebApplication http://mySp2010 -GACDeployment

Aggiornare la soluzione :
Update-SPSolution –Identity SharePointSolution.wsp –LiteralPath c:\code\SharePointSolution\bin\debug\SharePointSolution.wsp –GACDeployment

Ritiro della soluzione da una web application :
Uninstall-SPSolution –Identity SharePointSolution.wsp –WebApplication http://mySp2010

Rimozione della soluzione dalla farm :
Remove-SPSolution –Identity SharePointSolution.wsp

IMPORTANTE : Per effettuare il ritiro della soluzione è necessario che il servizio SharePoint 2010 Administration sia in esecuzione.