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.

È stato utile?

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

Fonte

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top