SharePoint 2010 – Missing Server Side Dependencies und andere Tücken einer Migration

Wie migriere ich “richtig” nach SharePoint 2010? Diese Frage stellen sich derzeit bestimmt viele MOSS 2007 Anwender und Administratoren.

Ich möchte hier einige meiner Erfahrungen aus SharePoint Migrationen vorstellen.

Vorbereitung der MOSS 2007 Farm

1. Seit dem SP2 für MOSS 2007 gibt es den stsadm-Befehl “preupgradecheck”. Diesen sollte man vor einer geplanten Migration unbedingt ausführen und sämtliche aufgelisteten Fehler beheben.

2. Sollte der “preupgradecheck” ohne Fehler beendet worden sein, ist dies noch keine Garantie, dass alle Probleme beseitigt sind. Administratoren sollten hier Folgendes prüfen:

  • Sind sämtliche Elemente, welche von benutzerdefinierten Features installiert wurden, wirklich überall entfernt worden? Dazu gehören:
    • benutzerdefinierte Listenspalten –> diese Spalten müssen aus allen Listen manuell entfernt werden, sofern das zugehörige Feature diese bei Deaktivierung nicht automatisch löscht
    • benutzerdefinierte  Webparts –> müssen von der Webseite entfernt und aus dem Webpartkatalog gelöscht werden.
      ACHTUNG: Wenn die Webparts aus dem Webpartkatalog entfernt wurden, tauchen diese noch in den Papierkörben der Website auf.
    • Listen, welche durch ein Feature angelegt wurden –> wenn das Feature nicht mit SharePoint 2010 kompatibel ist, müssen die Listen komplett entfernt werden (das Feature wird sicherlich nicht mehr unter SharePoint 2010 installiert werden).
    • Etwaiger Listen-Inhalt muss manuell migriert werden. Hier gilt außerdem das Gleiche wie bei den Webparts. Papierkörbe prüfen und ggf. leeren !!!
    • Fantastic Forty Templates –> Microsoft Team Blog veröffentlichte hierzu einen Eintrag

Die Migration ist erfolgreich abgeschlossen, aber der Health Analyzer zeigt die Meldung “Missing Server Side Dependencies”

Diese Meldung besagt nichts anderes, als dass SharePoint einige Referenzen auf alte Features “vermisst”. Was kann man also gegen dieses “Problem” tun?

1. Nachinstallation kompatibler Features.

2. Entfernen der fehlerhaften, nicht kompatiblen Referenzen:

  • Identifizierung, um welche Elemente es sich handelt und wo diese sich befinden (bei fehlenden Webparts zeigt der Health Analyzer genaue Infos).
  • Webparts können immer noch problemlos aus den Webpartkatalogen gelöscht werden (Auch hier gilt: Papierkörbe prüfen!).

Ich habe vergessen eine Liste zu löschen, welche durch ein SharePoint Feature angelegt wurde. Was kann man tun?

Diese Listen sind nicht mehr über die SharePoint-Weboberfläche anzusprechen, weder die einzelnen Listenansichten noch die Listeneinstellungsseite.
SharePoint teilt dies durch einen typischen SharePoint Fehler mit.

Der einfachste und schnellste Weg diese Listen zu löschen ist über die SharePoint 2010 Powershell:

$web = Get-SPWeb –identity http://sharepointurl
$list = $web.Lists[“Anzeigename der Liste”]
$list.Delete()
$web.Update()

Ich habe vergessen eine Spalte in einer Liste zu löschen und kann diese Liste nun nicht mehr aufrufen. Was kann man tun?

Dieses Problem ist schwieriger zu lösen. Hierzu muss man in die Listeneinstellungsseite und dann die betreffende Spalte entfernen. Wenn man Glück hat, kann die Liste über die Weboberfläche angesteuert und die Einstellungsseite der Liste geöffnet werden. Wird die benutzerdefinierte Spalte allerdings in jeder Ansicht genutzt, schlägt der Aufruf der Liste fehl. Die Einstellungsseite ist somit nur über den direkten Pfad zu erreichen.

Diese URL setzt sich wie folgt zusammen:

http://sharepointserverurl/_layouts/listedit.aspx?List=Listen-GUID

Man muss also “nur” die GUID der Liste herausfinden um die Einstellungsseite öffnen zu können.
Mit diesem kleinen Powershellskript, sollte es kein Problem sein:

$web = Get-SPWeb –identity http://sharepointurl
$list = $web.Lists[“Anzeigename der Liste”]
$list.ID

So kann man die GUID ermitteln

 

Nachdem man die GUID rausgefunden hat, kann man die Einstellungsseite im Web öffnen und die betreffende Spalte entfernen.

Hier die betroffene Spalte entfernen

 

Was tun bei fehlerhaften Featureeinträgen?

Nun kann es vorkommen, dass ebenfalls noch Feature-Einträge in der Datenbank “vergessen” wurden und der Health Analyzer diese vergessenen Einträge anmeckert.

Die Einträge sind ebenfalls über einen Powershell Befehl schnell zu entfernen:

Disable-SPFeature <<Feature GUID>> –url http://sharepointurl –force

Dieser Befehl sollte allerdings mit äußerster Vorsicht ausgeführt werden, um zu verhindern, dass zufällig wichtige oder benötigte Features deinstalliert oder zerstört werden.

Testen der Datenbank

Neben dem Health Analyzer gibt es noch eine andere Möglichkeit den Zustand der Datenbank zu überprüfen, nämlich über den Powershell Befehl:

Test-SPContentDatabase –Name “Name der Datenbank” –WebApplication “Url der Webanwendung”

Damit kann geprüft werden, ob noch weitere Migrationsfehler zu beheben sind.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.