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


Modificare file PDF in SharePoint

Prima cosa, intendiamoci, non sto postando una formula magica. Un requisito, anzi, IL requisito per modificare file PDF direttamente in SharePoint (ma non solo) è quello di avere installato sul client da cui accedete a SharePoint un editor PDF (Adobe Acrobat, Foxit PDF Editor, ecc…). Ho testato la procedura seguente sia con SharePoint 2007 SP2 (CU Febbraio 2010) che con SharePoint 2010. In ambedue i casi ho utilizzato una trial di Adobe Acrobat 9.

  1. Per prima cosa dobbiamo modificare il file DOCICON.XML (in drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML) per aggiungere la proprietà OpenControl nel mapping relativo al PDF (es. <Mapping Key=”pdf” Value=”icpdf.gif” EditText=”Modifica in Adobe Acrobat” OpenControl=”SharePoint.OpenDocuments” />);
  2. Nelle impostazioni della document library suggerisco di impostare l’estrazione obbligatoria dei documenti per la loro modifica;
  3. In Adobe Acrobat modificare le impostazioni di apertura dei file pdf nel browser, considerando quanto segue:
    • Se abilitata, disattivare l’apertura nel browser dei file PDF e chiudere Acrobat. Aprite nuovamente il programma e riabilitate la gestione dei file pdf nel web all’interno del browser. Sembra che Acrobat durante queste operazioni attivi un ActiveX o non so bene quale altro controllo, per noi indispensabile;
    • Se non abilitata, abilitarla ora;
  4. Aprire un documento PDF per la modifica. IMPORTANTE! Ricordarsi di selezionare sempre l’opzione di utilizzo delle “Draft folder” personali;

Cliccando sul nome del documento posso scegliere se aprire il file nel browser in modalità read only o effettuare il check-out and edit per lavorare sul documento. Nei miei test ho notato quanto segue:

  1. Se sceglo l’opzione di modifica check-out and edit specificando di utilizzare la local draft folder posso modificare il file e salvarlo direttamente in SharePoint senza passaggi aggiuntivi;
  2. Se scelgo l’opzione di modifica check-out and edit senza specificare l’utilizzo della local draft folter, ricevo un errore e non sono in grado di salvare le mie modifiche;
  3. In un file già estratto, cliccando sulla voce “Modifica in Adobe Acrobat” (dal menù contestuale di un file PDF) e seleziono la voce “Use local drafts folder”, posso modificare e salvare il file correttamente;

Come ho detto in precedenza ho effettuato questi test sia su SharePoint 2007 che SharePoint 2010 (non mi aspetto alcuna differenza con WSS e SPF anche se non l’ho testato direttamente). La procedura è identica, l’unica attenzione da porre in SharePoint 2010, se volete aprire i file PDF in sola lettura nel browser, è quella di cambiare le impostazioni di gestione dei file nel browser (Browser file handling) da Strict a Permissive. Questa impostazione è applicabile a livello di web application.

– Riccardo


Asp.net security advisory update

La notizia del secuirty advisory pubblicato da Microsoft relativo ad un “buco” di sicurezza di asp.net (che coinvolge quindi anche SharePoint, ma non solo) è rimbalzata su molti blog meno di due settimane fa, ne aveva parlato anche Giuseppe Marchi sul suo blog se siete interessati ad una versione “localizzata” della notizia :).

Oggi Stefan Goßner (Senior Escalation Engineer for SharePoint and MCM) ha pubblicato sul suo blog l’annuncio della disponibilità, anche via Windows Update entro pochi giorni, di un aggiornameto che corregge questa criticità. L’update è scaricabile per il momento dal sito Microsoft Download.

Ecco il link del post originale http://blogs.technet.com/b/stefan_gossner/archive/2010/09/28/important-out-of-band-security-update-to-address-asp-net-issue-will-be-released-today.aspx.

hth
-Riccardo


Aggiornamento per Nintex Workflow 2007

Penso che ormai tutti, chi più chi meno, abbiate sentito parlare di Nintex Workflow.

Nintex ha rilasciato già da qualche mese la nuova versione del prodotto per SharePoint 2010, Nintex Workflow 2010. In realtà non è su questa versione più recente di cui voglio parlare, ma di quella precedente: Nintex Workflow 2007.

Proprio questo lunedì Nintex ha rilasciato un nuovo aggiornameto del prodotto (versione 1.11). La prima nota è relativa ai contenuti di questa nuova build. Le principali innovazioni a mio avviso sono relative all’interfaccia utente. Finalmente, anche sulla versione 2007, sarà possibile ingrandire o rimpicciolire l’are di workflow designer grazie a funzionalità di zoom-in / zoom-out e stampare l’intero flusso senza dover ricorrere ad arti orientali della manipolazione della carta 🙂

Sono state introdotte anche 4 nuove activity per l’integrazione con Microsoft Dynamics CRM (Query, Create, Update e Delete CRM records) più una quinta, Get Meeting Suggestions, che si aggiunge alle activity di integrazione con Microsoft Exchange.La pubblicazione della nuova build è arricchita inoltre da diverse migliorie apportate ad alcune activity di workflow e ai tool di sviluppo e amministrazione.

In questo momento è disponibile solo la versione inglese di questo update, ma è già programmata per fine Settembre la pubblicazione degli aggiornamenti localizzati nelle diverse lingue.

Una seconda ed ultima nota, se volete più futile, riguarda il fatto che mi ha fatto piacere notare che nonostante Nintex abbia una nuova versione già in commercio, lo sviluppo sulla “wave 2007” prosegua. Sicuramente non è solo una questione “etica”, è quasi sicuramente pura logica di mercato visto l’alto numero di farm SharePoint 2007 “up and running”. Dal mio punto di vista è un (altro) punto a favore di Nintex :).

Nel caso in cui non conosceste Nintex Workflow o anche solo per un approfondimento l’indirizzo è http://www.nintex.com.

– Riccardo


SharePoint Community, il mio primo articolo

Ciao a tutti, è con immenso piacere che annuncio la pubblicazione del mio primo articolo, un how-to a dire il vero, sul sito della SharePoint Community 🙂

L’articolo tratta la creazione di una semplice feature dal punto di vista di un site builder e, soprattutto, senza l’aiuto di alcuno sviluppatore. Non entro nel dettaglio, sarebbe ripetitivo, ma vi invito a leggerlo sul sito della community all’indirizzo seguente http://www.sharepointcommunity.it/articles/Lists/HowTos/DispForm.aspx?ID=1.

Buona lettura e, se vi va, fatemi sapere cosa ne pensate 🙂

– Riccardo