Powershell Come sbloccare tutte le sitecollections
-
10-12-2019 - |
Domanda
Sto cercando di creare uno script Powershell, che esegue l'iterazione su tutti i SiteCollections e controlla se sono in lockdown.
Questo perché, a volte alcune raccolte non tornano da sola lettura, dopo il backup notturno.Se un SC è in sola lettura, voglio impostarlo su unlock
.
Questo è il mio codice finora:
$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
}
}
Non riesco a verificare se il mio codice di sblocco funziona, perché non ho alcun ambiente di test a portata di mano in questo momento.Ho bisogno di aiuto per la riga commentata su come sbloccare correttamente $_.RootWeb
Cordiali saluti
/modificare:Per chiarire le cose.Il problema non è che non ho ambienti di test.Il problema è che al momento non riesco ad accedervi.Non riesco a capire dalla cima della mia testa come posso impostare la proprietà readonly su false o come ottenere il -identity
da $_.
per ottenere il Set-SPSite
lavorare nel ciclo foreach.
Soluzione
Il seguente codice POC funziona per me:
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()
}
Prima imposta con successo un sito come di sola lettura e successivamente lo disattiva.
Altri suggerimenti
Sfortunatamente, non esiste davvero un equivalente di una riga in PowerShell per” ottenere " i blocchi per le raccolte siti che conosco.Se si elencano le proprietà dell'oggetto Raccolta siti, non esiste alcuna proprietà denominata "Stato di blocco" o simile.I valori di blocco mostrati nell'interfaccia utente sono effettivamente memorizzati in 4 diverse proprietà nell'oggetto Raccolta siti:
- In sola lettura
- ReadLocked
- WriteLocked
- Serratura
Per ottenere l'elenco delle raccolte siti bloccate, è possibile utilizzare lo script powershell riportato di seguito.
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
}
}
Dopo aver eseguito lo script di cui sopra si arriva a sapere che tutte le raccolte siti sono bloccati, utilizzando il codice qui sotto è possibile sbloccarlo, invece di impostare sblocca per tutte le raccolte siti,
utilizzo di STSADM
stsadm -o setsitelock -url <Site-collection-url> -lock Unlock
Utilizzo di PowerShell
Set-SPSite -identity "<Site-collection-url>" –lockstate Unlock
Secondo questo articolo TechNet per SharePoint 2010, il codice PowerShell per bloccare o sbloccare una raccolta siti è il seguente:
Set-SPSite -Identity "<SiteCollection>" -LockState "<State>"
Cui SitoCollezione è l'URL della raccolta siti che si desidera bloccare o sbloccare.
E Stato è uno dei seguenti valori:
- Sbloccare per sbloccare la raccolta siti e renderla disponibile agli utenti.
- NoAddizioni per impedire agli utenti di aggiungere nuovo contenuto alla raccolta siti.Gli aggiornamenti e le eliminazioni sono ancora consentiti.
- In sola lettura per impedire agli utenti di aggiungere, aggiornare o eliminare contenuti.
- Noaccesso per impedire agli utenti di accedere alla raccolta siti e al suo contenuto.Gli utenti che tentano di accedere al sito ricevono un errore
Quindi, per sbloccare, il LockState dovrebbe essere impostato su Sbloccare
Ma ti consiglio davvero di impostare un ambiente di test per provare questo.Configurare un ambiente SharePoint Foundation in una macchina virtuale.