Dans ce billet, j’aimerais portée à votre attention le fait que la commande STSADM Preupgradecheck ne réussit pas toujours à vérifier l’ensemble de ses règles. En effet, dans un environnement où le compte d’administration de Sharepoint ne possède pas de droits suffisants dans SQL Server, une règle de validation ne pourra être vérifiée.
Dans le log de la commande vous trouverez l’erreur suivante :
[SPObjectProcessor] [ERROR] [2009-06-01 13:56:58]: An unexpected error occured while processing a health analysis rule.
This rule will be skipped. The following message was generated by the error: System.Reflection.TargetInvocationException:
Une exception a été levée par la cible d'un appel. ---> System.Data.SqlClient.SqlException: CREATE DATABASE permission denied in database 'master'.
à System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
à System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
à System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
à System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
à System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
à System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
à Microsoft.SharePoint.Utilities.SqlSession.ExecuteNonQuery(SqlCommand command)
à Microsoft.SharePoint.Administration.Health.InvalidDatabaseSchema.EnsureTempDatabase(SPContentDatabase contentDb)
à Microsoft.SharePoint.Administration.Health.InvalidDatabaseSchema.Check()
--- Fin de la trace de la pile d'exception interne ---
à System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
à System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
à System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
à System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
à System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
à Microsoft.SharePoint.StsAdmin.SPObjectProcessor.ISPHealthAnalysisRuleCheck(Object rule)
à Microsoft.SharePoint.StsAdmin.SPObjectProcessor.ProcessObject()
Une bonne pratique serait donc de vérifier dans le log afin de vérifier si ce dernier contient des erreurs de ce type.
Vous trouverez plus d’information sur la commande STSADM Preupgradecheck dans mon billet du 1 juin dernier.