SharePoint: TaxonomyHiddenList manuell aktualisieren

Unter gewissen Umständen und mit gewissen Cumulativen Updates für den SharePoint 2010 kann es vorkommen, dass die TaxonomyHiddenList nicht mehr auf dem aktuellsten Stand ist, da die Synchronisation mit dem Term-Store (Terminologiespeicher) nicht mehr fehlerfrei durchgeführt werden kann.

Abhilfe (wenn auch eventuell nur temporäre?)  schafft folgendes PowerShell-Skript:

$Assem = (
	"Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" ,
	"Microsoft.SharePoint.Taxonomy, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
)

$Source = @"
using Microsoft.SharePoint;
using Microsoft.SharePoint.Taxonomy;
using System;

namespace TaxonomyUpdater
{
	public static class TaxonomyHiddenList
	{
		public static void Update(string SiteUrl)
		{
			SPSite Site2Update = new SPSite(SiteUrl);
			TaxonomySession.SyncHiddenList(Site2Update);
			Site2Update.Dispose();
		}
	}
}
"@

Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp

Das Skript muss man in einen Text-Editor einfügen und als „UpdateTaxonomyHiddenList.ps1“ abspeichern.

Danach das Skript in einer PowerShell einmal ausführen, damit die Klasse verfügbar wird. Zum Schluss mit folgendem Befehl die Synchronisation starten:

[TaxonomyUpdater.TaxonomyHiddenList]::Update(“http://SharePointServer”)

Siehe auch: http://blogs.msdn.com/b/joerg_sinemus/archive/2011/03/03/terms-and-how-to-update-taxonomyhiddenlist-when-the-timer-job-was-not-able-to-update.aspx

Server auf Debian 6.0 umgestellt

Der Server (VPS) auf dem shihan-online.ch und qoo.li gehostet sind, wurde von mir auf Debian 6.0 „Squeeze“ aktualisiert.

Unter Linux ist sowas zum Glück ja ganz einfach.

  1. Zuerst die Packetquellen kontrollieren und versichern, dass diese auf „stable“ verweisen (und nicht eine fixe Version eingetragen ist):
    [code lang=“bash“]vim /etc/apt/sources.list[/code]
    [code lang=“bash“]deb http://ftp-stud.fht-esslingen.de/debian/ stable main contrib non-free
    deb http://ftp.de.debian.org/debian-volatile stable/volatile main contrib non-free
    deb http://ftp.de.debian.org/debian-security stable/updates main contrib non-free

    # Usage
    # aptitude -t lenny-backports install "package"
    deb http://backports.debian.org/debian-backports lenny-backports main[/code]

  2. Die alten Packete werden nicht mehr benötigt und können nun gelöscht werden:
  3. [code lang=“bash“]apt-get clean[/code]

  4. Die neuen Packet-Listen abholen:
  5. [code lang=“bash“]apt-get update[/code]

  6. Das Distributions-Upgrade starten:
    [code lang=“bash“]apt-get -u dist-upgrade[/code]

Dann  ein Weilchen warten bis die ganzen Aktualisierungen heruntergeladen, konfiguriert und installiert wurden. Zwischendurch muss je nach System ab und zu manuell eingegriffen werden, falls das System Rückfragen hat, z.B. ob eine bestehende Konfigurations-Datei beibehalten werden soll oder nicht.

Besten Dank an Alain für den Hinweis zur neuen Version.