Powershell So entsperren Sie alle Sitecollections
-
10-12-2019 - |
Frage
Ich versuche, ein Powershell-Skript zu erstellen, das alle SiteCollections durchläuft und prüft, ob sie gesperrt sind.
Dies liegt daran, dass einige Sammlungen nach der nächtlichen Sicherung manchmal nicht aus dem schreibgeschützten Zustand wiederhergestellt werden.Wenn ein SC schreibgeschützt ist, möchte ich ihn auf „schreibgeschützt“ setzen unlock
.
Das ist mein Code bisher:
$sites = get-spsite -limit all | foreach
{
write-host "Site Collection: " $_.RootWeb.Title
if ( $_.ReadOnly -eq $true)
{
write-host "Site Collection: "$_.RootWeb.Title "--- Read-only"
//How to unlock?
//Set-SPSite -identity $_.RootWeb -lockstate unlock
//$_.ReadOnly = $false
}
}
Ich kann nicht überprüfen, ob mein Freischaltcode funktioniert, da ich momentan keine Testumgebung zur Hand habe.Ich benötige Hilfe für die kommentierte Zeile zum korrekten Entsperren $_.RootWeb
Mit freundlichen Grüße
/bearbeiten:Um die Dinge klarzustellen.Das Problem ist nicht, dass ich keine Testumgebungen habe.Das Problem ist, dass ich momentan nicht darauf zugreifen kann.Ich kann mir nicht aus dem Kopf heraus vorstellen, wie ich die readonly-Eigenschaft auf „false“ setzen kann oder wie ich sie erhalten kann -identity
aus $_.
um das zu bekommen Set-SPSite
Arbeiten in der foreach-Schleife.
Lösung
Der folgende POC-Code funktioniert für mich:
foreach($site in Get-spsite "PORTALURL/*" -limit all)
{
Write-Host $site.RootWeb.Url
$site.ReadOnly = $true
Write-Host "Is read only:" $site.ReadOnly
$site.ReadOnly = $false
Write-Host "Is read only:" $site.ReadOnly
$site.Dispose()
}
Zunächst wird eine Site erfolgreich als schreibgeschützt festgelegt und anschließend wieder deaktiviert.
Andere Tipps
Leider gibt es in PowerShell, soweit ich weiß, wirklich kein einzeiliges Äquivalent zum „Erhalten“ von Sperren für Websitesammlungen.Wenn Sie die Eigenschaften des Websitesammlungsobjekts auflisten, gibt es keine Eigenschaft namens „Sperrstatus“ oder ähnliches.Die in der Benutzeroberfläche angezeigten Sperrwerte werden tatsächlich in vier verschiedenen Eigenschaften im Websitesammlungsobjekt gespeichert:
- Schreibgeschützt
- ReadLocked
- WriteLocked
- Sperrproblem
Um die Liste der gesperrten Websitesammlungen abzurufen, können Sie das folgende Powershell-Skript verwenden.
Add-pssnapin Microsoft.SharePoint.Powershell -ErrorAction silentlycontinue
$sites = get-spsite -limit all | foreach
{
write-host "Checking lock for site collection: " $_.RootWeb.Title -foregroundcolor blue
if ($_.ReadOnly -eq $false -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $false)
{
write-host "The site lock value for the site collection"$_.RootWeb.Title "is: Unlocked" -foregroundcolor Green
}
if ($_.lockissue -ne $null)
{
write-host "The additional text was provided for the lock: " $_.LockIssue -foregroundcolor Green
}
elseif ($_.ReadOnly -eq $false -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $true)
{
write-host "The site lock value for the site collection"$_.RootWeb.Title "is: Adding Content Prevented" -foregroundcolor Green
}
elseif ($_.ReadOnly -eq $true -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $true)
{
write-host "The site lock value for the site collection"$_.RootWeb.Title "is: Read-only" -foregroundcolor Green
}
elseif ($_.ReadOnly -eq $null -and $_.ReadLocked -eq $null -and $_.WriteLocked -eq $null)
{
write-host "The site lock value for the site collection"$_.RootWeb.Title "is: No Access" -foregroundcolor Green
}
}
Nachdem Sie das obige Skript ausgeführt haben, erfahren Sie, welche Websitesammlungen gesperrt sind. Mit dem folgenden Code können Sie sie entsperren, anstatt die Entsperrung für alle Websitesammlungen festzulegen.
mit STSADM
stsadm -o setsitelock -url <Site-collection-url> -lock Unlock
Verwendung von PowerShell
Set-SPSite -identity "<Site-collection-url>" –lockstate Unlock
Entsprechend diesen TechNet-Artikel Für SharePoint 2010 lautet der PowerShell-Code zum Sperren oder Entsperren einer Websitesammlung wie folgt:
Set-SPSite -Identity "<SiteCollection>" -LockState "<State>"
Wo SiteCollection ist die URL der Websitesammlung, die Sie sperren oder entsperren möchten.
Und Zustand ist einer der folgenden Werte:
- Freischalten um die Websitesammlung zu entsperren und sie Benutzern zur Verfügung zu stellen.
- Keine Ergänzungen um zu verhindern, dass Benutzer neue Inhalte zur Websitesammlung hinzufügen.Aktualisierungen und Löschungen sind weiterhin zulässig.
- Schreibgeschützt um zu verhindern, dass Benutzer Inhalte hinzufügen, aktualisieren oder löschen.
- Kein Zugang um zu verhindern, dass Benutzer auf die Websitesammlung und deren Inhalte zugreifen.Benutzer, die versuchen, auf die Website zuzugreifen, erhalten eine Fehlermeldung
Zum Entsperren sollte der LockState auf gesetzt werden Freischalten
Ich empfehle Ihnen jedoch dringend, eine Testumgebung einzurichten, um dies auszuprobieren.Richten Sie eine SharePoint Foundation-Umgebung in einer virtuellen Maschine ein.