powershell

Completare la migrazione di un content database con PowerShell

Nelle settimane passate mi sono trovato ad affrontare un problema nato dopo la migrazione di una intranet da SharePoint 2007 a SharePoint 2010. La procedura che ho seguito per la migrazione è stata quella del database attach. L’operazione è andata (apparentemente) a buon fine, la intranet rispondeva a dovere, tranne per un “dettaglio”: se provavo a creare un nuovo sito o un nuovo elenco ottenevo l’errore seguente.

error_pagetitle
error_pagetitle

Ho provato, come primo tentativo, ad impostare via PowerShell l’interfaccia utente di SharePoint 2007. Così facendo la creazione di nuovi elementi non dava alcun problema. Reimpostando l’interfaccia SharePoint 2010, l’errore si è ripresentato. A questo punto sono andato a controllare nelle Central Administration (Central Administration > Upgrade and Migration > Review Database Status) lo stato del mio Content Database appena migrato.

Ho scoperto che la procedura di migrazione non era completa. In corrispondenza del db ho infatti trovato l’indicazione “Database is up to date, but some sites are not completely upgraded“.
Via PowerShell ho quindi completato l’operazione di upgrade, servono solo poche righe, le trovate di seguito.

$cdb = Get-SPContentDatabase Il_Mio_Content_Database

 

Upgrade-SPContentDatabase -id $cdb.Id

Una volta eseguito questo comando tutto ha ricominciato a funzionare come da manuale.

 

– Riccardo

 

Posted by sharepointpig in Amministrazione, Content Deployment, Database, SharePoint 2010, 0 comments

Nuovi articoli per SharePointCommunity.it

Nelle ultime settimane ho trascurato un po’ il mio blog per dedicarmi alla scrittura di due articoli (e ne sto finendo un terzo) per SharePointCommunity.it, pubblicati pochisimmi giorni fa.

Il primo articolo è relativo a come aiutarsi nella lettura dei log di SharePoint via PowerShell sfruttando il Correlation ID e a come proseguire con l’analisi dei log leggendo, sempre via PowerShell dall’event viewer di Windows.

Nel secondo articolo ho cercato di riprodurre, passo per passo, la procedura per poter schedulare via PowerShell i backup di SharePoint.

Links:

Come sopravvivere al Correlation ID Error

Pianificare i backup di SharePoint 2010 con Windows Powershell

Li avete letti? Cosa ne pensate? Aspetto i vostri commenti :)

-Riccardo

Posted by sharepointpig in Amministrazione, SharePoint 2010, SharePointCommunity.it, 0 comments

Backup-SPSite con useSqlSnapShot: Operation is not valid due to the current state of the object

Tempo fa, preparando una macchina virtuale per uno degli eventi Community a cui ho partecipato, ho verificato un errore ricorrente quando provavo ad eseguire il backup di una site collection via PowerShell utilizzando l’opzione usesqlsnapshot.

image

Non ne sono mai venuto a capo e ho sempre attribuito il problema ad un malfunzionamento della mia vm. Da pochi giorni sto lavorando ad una nuova macchina demo e, ovviamente, la seconda cosa che ho provato è stata eseguire lo stesso comando (la prima cosa, ancora più ovvio, è stata l’attivazione della UPSA :D).

Ancora errore… tristezza infinita… Mi attacco a Google sperando che nel frattempo anche qualcun’altro ha verificato lo stesso comportamento. Con una buona dose di stupore scopro che è il Sig. Technet che ne parla e, cosa dice? Che non è un errore!! Guardate un po’ qui. Semplicemente disarmante, ma almeno non era un mio errore :D.

image

HTH

– Riccardo

Posted by sharepointpig in Amministrazione, SharePoint 2010, 0 comments

Ripristinare timer job definition

Recentemente mi è capitato di seguire un attività di troublshooting su una farm MOSS “gambizzata”. Per errore erano state eliminate tutte le timer job definitions. Per alcune di queste una soluzione, forse poco elengante, è quella di (ri)creare la web application ed effettuare quindi il restore dei dati. Di fatto il solo restore non è sufficiente affinchè vengano ricreate le timer job definitions.

Ma questo non vale per tutti i timer job. Ad esempio non vale per l’Application Server Timer Job e l’Application Server Administration Service Timer Job, dettagli no?? Dopo un po di ricerche ho scoperto che questi timer job vengono creati dalla feature Shared Services, quindi per ripristinari “basta” reinstallare la feature via stsadm. Il comando completo è il seguente:

stsadm -o installfeature -name SharedServices -force

I timer job che vengono ricreati sono: Application Server Timer Job, Application Server Administration Service Timer Job, Licensing Synchronizer Job.

<Edit>
Prima di arrendermi all’evidenza ho provato anche la strada Powershell, ho letto più di un post che parlava di come creare timer job definition con ps. Purtroppo mi blocco alla lettura delle timer job definition presenti per la mia web application. Condivido con voi lo script, se qualcuno avesse voglia e tempo di completarlo mi faccia sapere, sono curioso :)

[void][reflection.assembly]::LoadWithPartialName(“Microsoft.SharePoint”)
[void][reflection.assembly]::LoadwithPartialName(“Microsoft.Office.Server”)

$SPSite = New-Object Microsoft.SharePoint.SPSite(“http://moss“)

$webApp = $SPSite.WebApplication

foreach ($timerjob in $webApp.JobDefinitions){
    Write-Host $timerjob.TypeName, $timerjob.Name, $timerjob.ID, $timerjob.Parent;
}

Qui potete trovare maggiori dettagli sulle informazioni disponibili in JobDefinitions. Ai fini pratici questo script non mi è servito proprio a niente, in compenso mi sono divertito a fare un po’ di pratica su Powershell ;)

</Edit>

– Riccardo

Posted by Riccardo in Amministrazione, stsadm, 0 comments