Wo ist Versionierung aktiviert?

Es geht um die Frage, wie finde ich heraus, wo in meinem SharePoint die beliebte Versionierung aktiviert ist? Denn meist wird dies ohne Limits eingesetzt, was dazu führt dass davon exzessiver Gebrauch gemacht wird, Speicher konsumiert wird und am Ende gar nicht benötigt wird. In einem vergangenen Blog Eintrag habe ich mich darum gekümmert Limits zu setzen. Der logische erste Schritt handelt aber davon, erstmal einen Bericht zu erstellen, welche Listen und Bibliotheken das überhaupt betrifft. Deshalb habe ich ein kleines Skript erstellt, was eine CSV Datei erzeugt, das alle Listen und Bibliotheken in SharePoint mit aktivierter Versionierung enthält: Anzupassen ist lediglich die $WebApps mit der die Webanwendung eingestellt wird, unterhalb dieser wird der Report gestartet.

# Loading Microsoft.SharePoint.PowerShell 
$snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
if ($snapin -eq $null) {
Write-Host "Loading SharePoint Powershell Snapin"
Add-PSSnapin "Microsoft.SharePoint.Powershell"
}
# variable section
If ($PSScriptRoot -eq $null)
{
$PSScriptRoot = '.'
}
$csvfile = "$PSScriptRootReportVersioning.csv"
#List of all WebApplications
$WebApps = @()#Declare array
$WebApps = 'http://intranet', 'http://extranet'
$SystemLists =@("Pages", "Converted Forms", "Master Page Gallery", "Customized Reports", "Documents", `
"Form Templates", "Images", "List Template Gallery", "Theme Gallery", "Reporting Templates", `
"Site Collection Documents", "Site Collection Images", "Site Pages", "Solution Gallery", `
"Style Library", "Web Part Gallery","Site Assets", "wfpub")

# Don't change beyond this line

#Write CSV Header
add-content -path $csvfile -Encoding UTF8 -Value ('ListURL,ListName,IsTemplateDocumentLibrary,MajorVersioningEnabled,MajorVersion,MinorVersionEnabled,MinorVersion')

#Loop through each Web Application
foreach ($WebApp in $WebApps)
{
$WebApp = Get-SPWebApplication $WebApp
Write-Host "Working on WebApp" $WebApp.Url
#Loop through each Site Collection
foreach ($SC in $WebApp.Sites)
{
Write-Host "Working on Site Collection" $SC.Url
# Loop through each Web (Subsite), this includes Root Web as well
foreach ($SPWeb in $SC.AllWebs) 
{
Write-Host 'Working on Site' $SPWeb.Url

#Get all Lists
foreach ($list in $spWeb.Lists)
{
write-host "Get Versioning for List: " $list.Title

if (($list.EnableVersioning) -and ($list.Hidden -eq $false) -and ($SystemLists -notcontains $list.Title))
{
#Define Limit for Major Versions
$list.MajorVersionLimit
#Enable Minor Versions

if ($list.BaseTemplate -eq 'DocumentLibrary')
{
$IsDocumentLib = $true
# Document Library have more versioning settings 
#Enable Versioning
$libMinorVersions = $list.EnableMinorVersions
#Define Limit for Minor Versions
$libMinorVersionsLimit = $list.MajorWithMinorVersionsLimit

} else { $IsDocumentLib = $false} 
#Header 'ListURL,ListName,IsTemplateDocumentLibrary,MajorVersioningEnabled,MajorVersion,MinorVersionEnabled,MinorVersion'
$ListUrl = $spweb.Url + '/' + $list.RootFolder.url
Write-Host 'Versioning enabled ' $list.Title $list.Url -ForegroundColor Green
write-host `t 'Major Versioning' $list.EnableVersioning
write-host `t 'MajorVersionLimit' $list.MajorVersionLimit
write-host `t 'Minor Versioning' $libMinorVersions
write-host `t 'Minor Versioning Limit' $libMinorVersionsLimit
Add-content -Path $csvfile -Encoding UTF8 -Value ($ListUrl + ',' + $list.Title + ',' + $IsDocumentLib + ',' + $list.EnableVersioning + ',' + $list.MajorVersionLimit + ',' + $libMinorVersions + ',' + $libMinorVersionsLimit)

$IsDocumentLib = $null
}
}
$spweb.Dispose()
} 
#Cleanup
$SC.Dispose()
}

}
Write-host 'Export finshed:' $csvfile -ForegroundColor green

Auch als Download unter: http://download.hobmaier.net/Downloads/ReportVersioning.ps1
Bei Ausführung des Skriptes wird eine entsprechende Liste/Bibliothek mit aktivierter Versionierung sofort in grün ausgegeben:
ReportVersioning
Das Ergebnis ist ein Export als CSV Datei. Mithilfe von Excel (Beispiel) kann man sich das übersichtlich darstellen lassen. Ist in der Spalte Minor/Major Version eine 0 gesetzt, ist kein Limit aktiv.
Viel Spaß beim Reporten!
Wenn Sie auf der Suche nach mehr solcher administrativen Tools sind, kann Ihnen der DocAve Administrator weiterhelfen – mit grafischer Oberfläche. Weitere Informationen gibt es unter: www.avepoint.de

0 0 vote
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