Versionierung in SharePoint aktivieren

In diesem Artikel beschreibe ich, wie in SharePoint die Versionierung für Listen und Bibliotheken (Libraries) aktiviert werden kann. Wieso sollte man das überhaupt tun?
Nunja, Versionierung festzulegen ist ein wichtiger Schritt der Governance. Das bedeutet wir legen Richtlinien innerhalb von SharePoint fest, damit kein Wildwuchs entsteht.
Wer weitere Details zum Thema Governance erfahren möchte, kann einen meiner nächsten Termine wahrnehmen (siehe Termine: “SharePoint Governance – Jetzt mit Struktur”). Der nächste findet bereits Morgen am 20.2.2014 in München statt. Zusätzlich hat es aus administrativer Sicht einen weiteren Vorteil, wir reduzieren so die Größe der Inhaltsdatenbank (Content DB). Stellen Sie sich vor, Versionierung ist aktiviert, der Benutzer arbeitet und speichert das Dokument alle 2 Minuten. Bei jeder Änderung entsteht eine neue Version in SharePoint und damit in der Datenbank. Habe ich jetzt ein 10 MB Dokument, Versionierung aktiviert und 100 Versionen, benötigt das 10 MB x 100 = 1000 MB. Mit SharePoint 2013 in Verbindung mit Shredded Storage ist das etwas besser geworden, so dass die Änderungen nur noch in sog. Chunks (Häppchen) abgespeichert werden, anstatt das ganze Dokument. Mehr zum Thema Shredded Storage gibt es in einem zukünftigen Blog Artikel. Überblick:

  • Manuell
  • PowerShell
  • 3rd Party Tool: AvePoint DocAve Policy Enforcer
  • Zugriff für den Endbenutzer
  • Referenz

Manuell

Öffnen Sie die Bibliothek, in der die Versionierung geöffnet werden soll. Gehen Sie dort auf den Reiter “Library” und wählen “Library Settings”: image In den Library Einstellungen, wählen Sie “Versioning settings”: image Aktivieren Sie im nächsten Schritt die Versionierung. Dabei können Sie zwischen Major Versionen als auch Minor Versionen unterscheiden.

  • Major Version: 1.0, 2.0, 3.0…
  • Minor Version: 1.1, 1.2, 1.3, …, 2.1, 2.2, 2.3, …

Sie können jeweils für beide Werte getrennte Limits angeben:  image Wiederholen Sie diesen Vorgang für jede Liste / Library für die Sie die Versionierung aktivieren möchten. Spätestens jetzt wird es sehr aufwendig, wenn man das für eine Vielzahl von Sites, Subsites, Listen und Libraries aktivieren muss. Daher schauen wir uns doch an, welche Möglichkeiten es mit PowerShell dem 3rd Party Tool von AvePoint gibt.

PowerShell

PowerShell ist ein großartiges Werkzeug für Massenverarbeitung. Auch lassen sich so automatisiert Schnittstellen zu anderen Systemen schaffen. Im folgenden erkläre ich also das aktivieren für eine bestimmte, einzelne Liste und zur Massenverarbeitung für alle Listen einer Site. Für beide Szenarien ist wichtig dass Major, Minor getrennt aktiviert werden muss, bevor das Limit eingestellt werden kann, d.h. um Minor Versions auf 10 zu begrenzen, muss ich vorher sicherstellen dass EnableVersioning und EnableMinorVersions beide auf true gesetzt sind (und damit aktiviert sind). Listen unterstützen übrigens nur Major Versionen. Versucht man per PowerShell Minor Versions zu aktivieren bekommt man einen Fehler der in etwa so lautet: “Exception setting “EnableMinorVersions”: “The list does not support minor versioning.””

Für eine bestimmte Liste

In meinem Beispiel verwende ich SharePoint 2013 und die Liste “Shared Documents”:

Add-PSSnapin Microsoft.SharePoint.PowerShell
$weburl = "http://lab-sp2013"
$spWeb = Get-SPWeb -Identity $webUrl

$splist = $spweb.GetList(“http://lab-sp2013/Shared Documents”)
# Output current settings
write-host “Major Versioning enabled” $splist.EnableVersioning
write-host $splist.EnableMinorVersions
write-host $splist.MajorVersionLimit
write-host $splist.MajorWithMinorVersionsLimit

# Set new settings
$splist.EnableVersioning = $true
$splist.MajorVersionLimit = 5
$splist.EnableMinorVersions = $true
$splist.MajorWithMinorVersionsLimit = 10
# Commit settings
$splist.Update()

 

Für alle Listen und Subsites einer Site Collection

Das folgende Beispiel geht durch alle Subsites und aktiviert die Versionierung für alle Listen.

Add-PSSnapin Microsoft.SharePoint.PowerShell
# Get Site Collection
$spsite = get-spsite ("http://lab-sp2013/sites/test")
# Get all Sites and SubSites
foreach ($spweb in $spsite.AllWebs)
{
    write-host "Working on Site: " $spweb.Title
    #Get all Lists
    foreach ($list in $spWeb.Lists)
    {
        write-host "Enable Versioning for List: " $list.Title
        #Enable Versioning
        $list.EnableVersioning = $true
        #Define Limit for Major Versions
        $list.MajorVersionLimit = 5
        #Enable Minor Versions
        $list.EnableMinorVersions = $true
        #Define Limit for Minor Versions
        $list.MajorWithMinorVersionsLimit = 10
        # Commit settings
        $list.Update()
    }
}

 

AvePoint DocAve

Wozu sollte man also noch ein 3rd Party Tool evaluieren, wenn man die Einstellung so leicht setzen kann? Ganz einfach, um auch im laufenden Betrieb Governance zu gewährleisten und Reporting Funktionalitäten nutzen zu können.
Heute hab ich die Versionierung für alle Listen und Bibliotheken einer Websitesammlung aktiviert. Morgen ändert ein Site Collection Administrator die Einstellung und deaktiviert die Versionierung. Lassen wir ein Jahr vergehen, denn wir bewegen uns ja in der vermeintlichen Sicherheit die Versionierung aktiviert zu haben. Nach einem Jahr stellt ein Business User fest, dass er dringend den Zugriff auf eine vorherige Version benötigt – doch zu seinem Erstaunen ist der Menüpunkt “Versionsverlauf” (Version History) nicht vorhanden. Der Fall landet beim Helpdesk.
Der Helpdesk wird feststellen dass die Versionierung deaktiviert ist, obwohl das nicht sein dürfte. Es hilft nur noch die aufwendige Wiederherstellung.
Um also Ihrem Governance Plan auch Sicherheit und Langfristigkeit zu gewährleisten, kann Sie der Policy Enforcer von DocAve bestens unterstützen. Ähnlich wie bei dem Konzept von Gruppenrichtlinien, werden:

    • Einstellungen an zentraler Stelle definiert

 

    • Einstellungen gesetzt

 

    • Abweichungen im Betrieb in einem Bericht zusammen gefasst (semi-automatisch)

 

  • Abweichungen im Betrieb automatisch auf die definierte Einstellungen zurückgesetzt (automatisch)

Ein Report (semi-automatisch) könnte wie folgt aussehen. Dabei gibt es für den Administrator auch gleich die Möglichkeit Abweichungen automatisch zu beheben:
image
Mithilfe von DocAve Policy Enforcer kann man also langfristig Governance gewährleisten. Neben Versionierung stehen übrigens noch rund 40 weitere Einstellungen zur Verfügung. Wenn Sie weitere Details hierzu möchten, können Sie mich gerne kontaktieren.

Zugriff für den Endbenutzer

Der Benutzer kann bei der Verwendung von Major und Minor Versionen selbst bestimmen, wann ein Major Version erstellt wird. Hierzu wählt er im Kontextmenü “Hauptversion veröffentlichen” (Publish a Major Version””) aus:
image
Anschließend kann der Benutzer noch einen Kommentar hinzufügen. Der Zugriff auf vorherige Versionen erfolgt über “Versionsverlauf” (Version History):
image
Der Verlauf könnte dann wie folgt aussehen:
image

Referenz

 

 

0 0 votes
Article Rating
Teilen

Autor: Dennis Hobmaier

Dennis Hobmaier ist Consultant - Digital Workspace bei Insight Technology Solutions GmbH. Er hat über 15 Jahre Erfahrung in IT-Enterprise Umgebung aller Größenordnungen und bedient Kunden aus den unterschiedlichsten Branchen. Als MCSE SharePoint hat er tiefgreifende Kenntnisse in den Bereichen Microsoft Active Directory, Windows, Azure, SharePoint und Office 365. Gerne teilt er seine Projekterfahrung mit Ihnen.

Subscribe
Notify of
guest

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .

0 Comments
Inline Feedbacks
View all comments