SharePoint 2013 Updates (CU, PU, COD)

Poco più di un paio di settimane fa sono stati rilasciati i primi aggiornamenti per SharePoint 2013 & Co. (Workflow Manager e Office Web Applications), il Public Update di Marzo 2013. Avete letto bene, questa volta parliamo di public update (PU) e non cumulative update (CU) come ormai ci eravamo abituati a conoscere questi aggiornamenti.

In realtà non si tratta di un cambio nella naming convention da parte di Microsoft, ma una tipologia differente di update. In questo caso il PU di Marzo contiene anche i bit del CU precedente, a quanto pare mai reso pubblico (ehm, scusate il gioco di parole :)). Stefan Goßner ha pubblicato sul suo blog un interessantissimo articolo che spiega le differenze sulle diverse tipologie di update per SharePoint, ne consiglio la lettura http://blogs.technet.com/b/stefan_gossner/archive/2013/03/21/common-question-what-is-the-difference-between-a-pu-a-cu-and-a-cod.aspx.

Una cosa importante da segnalare è che questo aggiornamento è un requisito per l’installazione di futuri update sulla farm e quindi, di fatto obbligatorio. Sempre dal blog di Stefan leggiamo infatti:

Important: Due to a change in the package configuration introduced after SharePoint 2013 RTM the March Public update is a mandatory requirement in order to install subsequent SharePoint 2013 Updates.

Parlando di aggiornamenti vi segnalo altri tre link da tenere in considerazione. Il primo riguarda la procedura consigliata da seguire per l’update di farm SharePoint 2013. Il secondo evidenzia la possibilità di incorrere in tempi di installazione molto lunghi per questa CU. Russ Maxwell condivide sul suo blog uno script PowerShell per evitare questo problema. L’ultimo link è relativo alla pagina di download del whitepaper Microsoft “Understanding Updates for SharePoint Products and Technologies white paper”, direi che il titolo parla da solo :).

Ecco i link:

Non mi rimane che ricordare di procedere negli aggiornamenti con la consueta prudenza e di testare prima ogni update in ambienti di test/accettazione.

Happy Patching 🙂
– Riccardo

Informazione di servizio: Sono in procinto di cambiare provider, se il blog non dovesse risultare raggiungibile per qualche giorno, porta pazienza. Se non combino guai in pochi giorni tornerà tutto come prima, e forse anche meglio 🙂


Provare SharePoint 2013

Mi fa impressione pensare al fatto che sia già passata una settimana dalla fine dell’edizione 2013 della SharePoint & Office Conference. Sarà perché dopo un periodo così inteso sono tornato al lavoro “ordinario” con una strana sensazione di stordimento del tipo “E adesso cosa succede?”.

Cooomunque… La mia impressione sulla conferenza è stata molto positiva, sono davvero molto soddisfatto sia come speaker che come partecipante. In questi tre giorni infatti, oltre che parlare di Powershell 3 e SharePoint 2013, New SharePoint 2013 Search Features e (ahimè) Workflow con SharePoint Designer 2013, ho avuto modo di seguire qualche sessione, purtroppo non tutte quelle che avrei voluto. Ho trovato notevoli quelle di Carmelo Ferrara (SharePoint: Capacity Planning and Performance Improvements), Spencer Harbar (Rational Guide to SharePoint Server 2013 User Profile Synchronization), Brian Alderman (Optimizing SQL Server for SharePoint) e Luca Bandinelli (SharePoint 2013 new Search Architecture).

Ma veniamo al punto. Durante i coffee break più di un partecipante alla conferenza mi ha chiesto se fosse possibile “provare” SharePoint senza doverlo installare “in casa”. Di seguito riporto un elenco, sicuramente non esaustivo, di alcuni servizi che offrono questa possibilità.

  • Office365 penso non abbia bisogno di presentazioni. E’ possibile registrarsi per provare il “prodotto” gratuitamente per 30 giorni (Office365 Enterprise E3 Trial). L’ambiente  è configurato e funzionante in pochi minuti;
  • CloudShare è un servizio online che mette a disposizione una, o più, macchine virtuali SharePoint (2007, 2010 e 2013) già configurate. A questo indirizzo trovate l’elenco di tutte le VM che potrete scegliere (non solo SharePoint): http://www.cloudshare.com/products/proplus/availablemachines. Anche in questo caso c’è una trial gratuita di 14 giorni. Non ho mai provato questo servizio, al contrario di Office365 :);
  • SharePointPower.com è un servizio che mette a disposizione un tenant SharePoint 2013 (site collection “illimitate”, massimo 1 GB di storage e 10 utenti, enterprise feature, 20 lingue disponibili) per studiare le funzionalità del prodotto. Sicuramente è una soluzione molto interessante, anche per il fatto che sembra essere totalmente gratuito. A questo indirizzo trovate qualche informazione aggiuntiva: http://thuansoldier.net/?p=2915. Come per il caso precedente non l’ho ancora provato personalmente;
  • 2010 Information Worker Demonstration and Evaluation Virtual Machine (SP1). Già da qualche anno Microsoft permette di scaricare una virtual machine (Hyper-V) di valutazione del prodotto. L’ambiente SharePoint, 2010 in questo caso, è già configurato, compreso Office Web Applications e FAST Search for SharePoint 2010. E’ inoltre possibile scaricare dalla stessa pagina una serie di pacchetti contenenti dati di esempio per tutte le funzionalità da testare. In molte occasioni queste VMs mi sono tornate molto comode. Purtroppo non ho trovato e non sono a conoscenza dell’esistenza delle stesse macchine virtuali con SharePoint 2013. A differenza di tutti gli altri servizi queste VM richiedono dell’hardware su cui girare.

Enjoy your test 🙂
– Riccardo


Workflow Manager setup issue

Considerando chiusa la partita di Siena in Eurolega ne approfitto per parlare di un problema che ho avuto nei giorni scorsi nel setup di Workflow Manager per SharePoint 2013.

Come forse saprete SharePoint (Server) 2013 supporta una nuova infrastruttura di Workflow, molto più evoluta rispetto alle versioni precedenti. Per implementare questa infrastruttura è necessario installare un nuovo componente, Workflow Manager. Non voglio entrare ora nel dettaglio, magari ce ne sarà occasione più avanti, ma alla fine di questo post vi riporto le sessioni della prossima SharePoint & Office Conference su questo tema, dove potrete approfondire l’argomento a vostro piacimento.

Tornando al mio setup, TechNet propone di eseguire l’installazione da Web Platform Installer, ma il link presente nell’articolo porta (ad oggi) ad una versione precedente (Beta 1) di Workflow Manager, ormai superata. Così, sempre dalla stessa piattaforma, ho eseguito la ricerca del prodotto che ho trovato rapidamente nella sua versione finale.

Web Platform Installer

Peccato solo che il setup sia finito molto presto con un errore molto poco chiaro.

Error Workflow Manager

Anche il messaggio nei log e nel event viewer non mi suggeriva niente di preciso:

Event Viewer

Event ID 11722 Product: Windows Fabric — Error 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. Action DoFabricSetup, location: C:\Program Files\Windows abric\bin\Fabric\Fabric.Code.1.0\MSIHiddenAppLauncher.exe, command:FabricSetup /operation:install /gac /trace:”C:\ProgramData\Windows abric\Fabric\log” /fabricDataRoot:”C:\ProgramData\Windows Fabric\\” /traceBufferSizeInKB:128 /traceFileSizeInMB:128/fabricPrincipal:”DOMAIN\Username”

Dopo aver trovato un thread interessante in uno dei forum su TechNet relativo a Lync 2013 e soprattutto dopo un consulto con Claudio, sono venuto a capo del problema.

Il server su cui stavo provando ad installare Workflow Manager era configurato con impostazioni regionali Italiane: locale, tastiera, formato di data e ora, ecc… Pare proprio che a Workflow Manager tutto questo non piacesse affatto. Purtroppo non sono riuscito a capire quale fosse l’impostazione precisa causa dell’errore: Location? Data? Ora? Tastiera? Boh… Fatto sta che portando temporaneamente questi parametri su valori “en-US” sono riuscito a completare il setup senza altri problemi.

Come promesso ecco l’elenco delle sessioni sul tema “worklow” che potrete seguire alla Office & SharePoint Conference 2013 il 6, 7 e 8 Marzo.

Marzo si avvicina, siete pronti? 🙂
– Riccardo

SharePoint & Office Conference 2013


Report dimensioni site collection con Powershell

E’ passato un po’ di tempo dall’ultimo post e mi accingo ad “inaugurare” il nuovo anno esattamente da dove l’avevo lasciato, cioè da Windows PowerShell.

Ne approfitto già che ci sono per ricordarvi che alla prossima SharePoint & Office Conference io e Claudio terremo una sessione su PowerShell 3 e SharePoint 2013, se siete da quelle parti fatevi riconoscere :).

Ma torniamo a noi. Di recente un cliente mi ha chiesto un report giornaliero sulle dimensioni di una serie di site collection (SharePoint 2010). Un possibilità era quella di suggerire al cliente di aprire la site collection con SharePoint Designer tutte le volte che ne aveva voglia e controllare da se. Ottima idea per interrompere subito i rapporti con la maggior parte dei clienti :). Affidarsi alle dimensioni del content database non fornisce sufficienti informazioni sul reale livello di utilizzo del sito in quanto lo stesso database può contenere più site collection. Inoltre penso sia applicabile la stessa considerazione fatta in precedenza.

La strada che ho intrapreso è stata, inutile ribadirlo, quella di utilizzare uno script PowerShell. Concettualmente è molto semplice. Faccio un ciclo su tutte le site collection, memorizzo sia lo spazio utilizzato dalla site collection che dal content database ed invio i risultati via email ad uno o più destinatari . Lo script è pensato per essere eseguito tramite Task Scheduler.

Ecco lo script:

if ((Get-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue) -eq $null){
Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue
}

<## Nelle righe seguenti vado a ricavare l’indirizzo del server SMTP configurato nella Central Administration e imposto qualche variabile di servizio ##>

$nl = [environment]::NewLine
$message = “”
$storage = 0
$ca = Get-SPWebApplication -IncludeCentralAdministration | ?{$_.IsAdministrationWebApplication -eq “True”}
$smtpServer = $ca.OutboundMailServiceInstance.Server.Address

<## A questo punto ciclo su web application e site collection, ordinando i risultati per spazio occupato. Nel ciclo formatto i valori in modo che siano numeri leggibili e creo il messaggio da inviare ##>

Get-SPWebApplication | Get-SPSIte -Limit All | Sort-Object -Descending -Property $_.usage.storage | %{
$db = Get-SPContentDatabase $_.ContentDatabase ;
$dbsize = “{0:N2}” -f ($db.DiskSizeRequired/1GB) ;
$size = “{0:N2}” -f ($_.usage.storage/1GB);
$message += $nl + $nl + $_.Url + “; ” + $size + ” GB; ” + ($_.ContentDatabase -replace “SPContentDatabase Name=”,””) + “; ” + $dbsize + ” GB;”
$storage += $_.usage.storage
}

<## Aggiungo al messaggio la somma dello spazio occupato da tutte le site collection. Alle righe successive imposto il messaggio di posta e lo invio. ##>

$message += $nl + $nl + “Totale storage {0:N2}” -f ($storage/1GB) + ”  GB”

$date = Get-Date
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg.From = “me@mioserver.it
$msg.ReplyTo = “me@mioserver.it
$msg.To.Add(“te@tuoserver.com“)
$msg.subject = “Report storage site collections ” + $date.ToShortDateString()
$msg.body = $message
$smtp.Send($msg)

Puoi scaricare lo script dal mio SkyDrive, a tuo rischio e pericolo, si intende 🙂

Se invece questo tipo di informazioni servono una tantum e nel più breve tempo possibile devo convenire con Igor che il comando stsadm -o enumsites -url http://miosito è probabilmente la soluzione più veloce. Anche se io continuo a preferire the Powershell way 🙂

Happy PoSH
– Riccardo

SharePoint & Office Conference 2013


SharePoint Future 2012 – SharePoint 2013 Pre-requisiti: Server Roles and Features

Martedì si è tenuto a Milano l’edizione 2012 di SharePoint Future, primo evento italiano interamente dedicato a SharePoint 2013.

SharePoint Future 2012

 

Dal mio punto di visto è stato proprio una gran bella giornata! Mi sono divertito molto sia durante le mie due sessioni, la prima con Barbara e Claudio su WCM e Search, la seconda con Igor sulle novità per gli IT Pro, sia nei momenti di pausa scambiando quattro chiacchere con vecchi e nuovi amici (nella sua accezione alla Facebook), mancavano solo Marco e Alessandro :). Anche la location, l’Enterprise Hotel di Milano, secondo me non è stata affatto male, anzi! Un altro gran colpo di EventHandler ;).

Tra gli altri mi ha fatto piacere rivedere persone con cui lavoro molto spesso a distanza come Perrine, Peter, Roberto e Emanuel di AvePoint e Liam di Nintex. It has been good to see you again 🙂

Ma sto divagando. Nella mia seconda presentazione, parlando dei pre-requisiti di SharePoint 2013 ho parlato della possibilità di installare i server role richiesti utilizzando Windows Powershell. Lo script seguente è generato nella cartella temporanea (%temp%) di Windows al momento dell’esecuzione di PrerequisiteInstaller.exe.

Attraverso il modulo ServerManager è possibile configurare i ruoli e le feature richieste. Ecco lo script completo:

Import-Module Servermanager

Add-WindowsFeature NET-WCF-HTTP-Activation45,NET-WCF-TCP-Activation45,NET-WCF-Pipe-Activation45

$operation = Add-WindowsFeature Net-Framework-Features,Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-App-Dev,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Health,Web-Http-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-Http-Tracing,Web-Security,Web-Basic-Auth,Web-Windows-Auth,Web-Filtering,Web-Digest-Auth,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Mgmt-Tools,Web-Mgmt-Console,Web-Mgmt-Compat,Web-Metabase,Application-Server,AS-Web-Support,AS-TCP-Port-Sharing,AS-WAS-Support,AS-HTTP-Activation,AS-TCP-Activation,AS-Named-Pipes,AS-Net-Framework,WAS,WAS-Process-Model,WAS-NET-Environment,WAS-Config-APIs,Web-Lgcy-Scripting,Windows-Identity-Foundation,Server-Media-Foundation,Xps-Viewer

if ($operation.ExitCode -eq ‘SuccessRestartRequired’) {
$host.SetShouldExit(3010)
exit }

Su Windows Server 2012 potrebbero verificarsi dei problemi nell’installazione della feature Net-Framework-Features dovuti alla mancanza dei file di installazione. Per ovviare al problema basta copiare dal dvd di Windows Server la directory Sources/sxs ed eseguire il comando precedente con una piccola modifica.

Import-Module Servermanager

$sourcesxs = “C:\temp\sources\sxs”

Add-WindowsFeature NET-WCF-HTTP-Activation45,NET-WCF-TCP-Activation45,NET-WCF-Pipe-Activation45

$operation = Add-WindowsFeature Net-Framework-Features -source $sourcesxs,Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-App-Dev,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Health,Web-Http-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-Http-Tracing,Web-Security,Web-Basic-Auth,Web-Windows-Auth,Web-Filtering,Web-Digest-Auth,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Mgmt-Tools,Web-Mgmt-Console,Web-Mgmt-Compat,Web-Metabase,Application-Server,AS-Web-Support,AS-TCP-Port-Sharing,AS-WAS-Support,AS-HTTP-Activation,AS-TCP-Activation,AS-Named-Pipes,AS-Net-Framework,WAS,WAS-Process-Model,WAS-NET-Environment,WAS-Config-APIs,Web-Lgcy-Scripting,Windows-Identity-Foundation,Server-Media-Foundation,Xps-Viewer

if ($operation.ExitCode -eq ‘SuccessRestartRequired’) {
$host.SetShouldExit(3010)
exit }

La prossima conferenza sarà a Marzo, la SharePoint and Office Conference, vi aspetto!

– Riccardo


Materiale per SharePointCommunity.it

Live dal mio nuovissimo Lenovo W530 faccio solo una rapida escursione nel mondo esterno per segnalare che nei giorni scorsi è stato pubblicato su SharePointCommunity.it il video della sessione che ho tenuto durante l’evento SharePoint Governance, tenutosi Martedì 30 Ottobre a Milano. In realtà a causa di problemi “tecnici” la sessione è stata registrata in un secondo momento, ma sono sicuro che fa lo stesso 🙂

Da pochi minuti inoltre è stato pubblicato un nuovo articolo su come rinominare una web application in SharePoint. Approfitto per ringraziare Achille della disponibilità 🙂

Qualcuno mi ha segnalato che ha problemi con la riproduzione del video, se così fosse fatecelo sapere che provvederemo a rimediare tempestivamente.

– Riccardo


SharePoint Online e PDF

Sabato mattina, piove e sto ultimando la mia presentazione per l’evento di martedì 30 organizzato da Green Team sulla SharePoint Governance. Prima di cominciare do un occhiata ai miei feed RSS e cosa ti trovo? Un post che rimanda al blog del team di Office 365 che annuncia un prossimo aggiornamento per SharePoint Online.

In realtà il post originale è di Settembre e, da quanto si legge, l’aggiornamento dovrebbe essere già completato, o quasi. L’update in questione riguarda uno dei punti dolenti per gli utenti finali di SharePoint Online, cioè l’impossibilità di aprire nel browser file PDF senza ricorrere a procedure tipo macumba o all’inserimento di script per forzare un comportamento pressoché standard.

Nei prossimi giorni questo comportamento sarà corretto e tutti gli utenti potranno finalmente aprire i PDF nel browser (a patto di aver installato Adobe Reader). Tuttavia leggendo i commenti al post mi sembra che questa operazione non sia così semplice come dovrebbe essere, o almeno non per tutti, vi consiglio quindi di leggere attentamente anche quelli.

Questo update riguarda inoltre la gestione dei file MP4 salvati all’interno di document library in SharePoint Online, per i quali ne è stata migliorata la riproduzione, introducendo una sorta di streaming progressivo.

A partire da questo indirizzo http://community.office365.com/en-us/wikis/office_365_service_updates/default.aspx potrete trovare l’elenco aggiornato di tutti i gli update rilasciati e previsti per Office 365.

– Riccardo

ps. Ah, dimenticavo. Avete sentito? SharePoint e Office 2013 sono stati rilasciati in RTM, f@#k yeah!


Nuovo How-To SharePointCommunity.it

Qualche giorno fa, parlando con un cliente, mi sono reso conto che tante operazioni che a me sembrano semplici e scontate non lo sono altrettanto per molte persone che utilizzano quotidianamente SharePoint come utenti finali. Ho così realizzato un how-to su come memorizzare il percorso di un raccolta documenti tra i preferiti di Esplora Risorse, per velocizzare l’accesso ai documenti aperti con maggiore frequenza. Spero possa tornare utile.

L’articolo è stato pubblicato questa mattina sul sito di SharePointCommunity.it, di seguito trovate il link alla pagina.

Buona lettura
– Riccardo


Vintage Weekend Part II: Ottenere tutti gli utenti del sito con Powershell

Seconda parte della serie Vintage Weekend. Se vi siete persi la prima parte si tratta di esempi di script Powershell pensati per essere utilizzati con SharePoint 2007.

In questo caso il pretesto mi è stato dato da un cliente che aveva bisogno di conoscere tutti gli utenti e gruppi di una site collection. Come nell’esempio precedente trattandosi si SharePoint 2007 è necessario referenziare le librerie che interrogheremo prima di procedere. Successivamente, una volta memorizzato l’oggetto “site collection” effettueremo un ciclo su tutti i gruppi del sito e per ognuno di questi stamperemo a video tutti i nomi utente.

[System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.SharePoint”)
$site = New-Object Microsoft.SharePoint.SPSite(“http://yourservername/sites/yoursitecollection “)
$groups = $site.RootWeb.sitegroups
foreach ($grp in $groups) {
“Group: ” + $grp.name;
foreach ($user in $grp.users) {
”  User: ” + $user.name
}
}
$site.Dispose()

Happy PoSH
– Riccardo


Vintage Weekend: Elencare tutti i documenti di un sito con Powershell su SharePoint 2007

Chiamatelo Vintage, chiamatelo Legacy, chiamatelo un po’ come vi pare ma SharePoint 2007 è ancora là fuori e gode di discreta salute.

Proprio qualche giorno fa mi è stata chiesta un indicazione di massima sul numero totale di elementi presenti in una web application. In un primo momento ho pensato che la pagina “storage manager” potesse aiutarmi, ma così non è stato in quanto questa pagina mostra al massimo i primi 100 “contenitori” più utilizzati.

Ho trovato la risposta, come in molti altri casi in Windows Powershell. Non mi stancherò mai di ripetere infatti che, anche se solo in SharePoint 2010 sono state create delle cmdlet apposite, già dalla versione 2007 è possibile accedere al modello oggetti di SharePoint da script.

Il concetto è molto semplice, selezionare una web application ed effettuare un ciclo su tutte le site collection, tutti i siti, tutti gli elenchi e scrivere URL, titolo e tipologia della lista in un file di testo. Infine ho anche aggiunto il conteggio degli elementi presenti in ciascuna lista.

[void][System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.SharePoint”)
$farm = [Microsoft.SharePoint.Administration.SPFarm]::Local

foreach ($spService in $farm.Services) {
if (!($spService -is [Microsoft.SharePoint.Administration.SPWebService])) {   continue;  }
$webApp = [Microsoft.SharePoint.Administration.SPWebApplication]::Lookup(“http://2007.sharepoint.corp“)

foreach ($site in $webApp.Sites) {
foreach ($web in $site.AllWebs) {
foreach ($list in $web.Lists) {
$values = $web.Url + “,” + $list.Title + “,” + $list.BaseType + “,” + ($list.items).count
add-content -path “D:\Logs\ilmiosito-items.csv” -value $values
}
$web.Dispose();
}
$site.Dispose()
}
}

Una volta eseguito lo script potrete aprire il file CSV in Excel ed utilizzarlo per fare tutte le statistiche che vi servono.

Happy Vintage PoSH
– Riccardo