Question

Je suis en train de construire un Script Powershell, qui itère sur tous les SiteCollections et vérifie s'ils sont sur lockdown.

C'est parce que, parfois, certaines collections ne revenez pas en lecture seule, après la nuit de sauvegarde.Si un SC est en lecture seule, je veux le mettre à unlock.

C'est mon code pour l'instant:

$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
    }
}

Je ne peux pas vérifier si mon code de déverrouillage est au travail, parce que je n'ai pas d'environnement de test à la main.J'ai besoin d'aide pour la ligne de commentaires sur la façon de déverrouiller correctement $_.RootWeb

Cordialement

/edit:Pour rendre les choses claires.Le problème n'est pas, que je n'ai pas d'environnement de test.Le problème est, je ne peux pas y accéder dès maintenant.Je ne peux pas comprendre du haut de ma tête comment je peux définir la propriété readonly pour fausse ou comment obtenir la -identity à partir de $_. pour obtenir le Set-SPSite de travail dans la boucle foreach.

Était-ce utile?

La solution

Le COP suivantes code fonctionne pour moi:

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()
}

D'abord avec succès définit un site comme étant en Lecture Seule, et par la suite unsets il.

Autres conseils

Malheureusement, il n'est pas vraiment un équivalent en ligne de PowerShell pour “obtenir” des verrous pour les collections de sites que je connais.Si vous liste les propriétés du site objet de collection, il n'y a pas de propriété appelée “Verrouillage” ou similaire.Le verrouillage des valeurs affichées dans l'INTERFACE utilisateur sont stockés dans 4 des propriétés différentes dans le site objet de collection:

  • ReadOnly
  • ReadLocked
  • WriteLocked
  • LockIssue

Pour obtenir la liste de verrouillé les collections de sites, vous pouvez faire usage de la ci-dessous un script powershell.

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
    }
}

Après avoir exécuté le script ci-dessus, vous obtiendrez de savoir à qui toutes les collections de sites sont verrouillés, à l'aide du code ci-dessous, vous pouvez le déverrouiller, plutôt que de les débloquer pour toutes les collections de sites,

à l'aide de la commande STSADM stsadm -o setsitelock -url <Site-collection-url> -lock Unlock

À L'Aide De PowerShell Set-SPSite -identity "<Site-collection-url>" –lockstate Unlock

Source

Selon cet article TechNet pour SharePoint 2010, le PowerShell code pour verrouiller ou déverrouiller une Collection de sites est comme suit:

Set-SPSite -Identity "<SiteCollection>" -LockState "<State>"

SiteCollection est l'URL de la collection de sites que vous souhaitez verrouiller ou déverrouiller.

Et État est l'une des valeurs suivantes:

  • Déverrouiller pour déverrouiller la collection de sites et les rendre disponibles aux utilisateurs.
  • Noadditions: permet pour empêcher les utilisateurs d'ajouter du nouveau contenu à la collection de sites.Les mises à jour et des suppressions sont encore permis.
  • ReadOnly pour empêcher les utilisateurs d'ajouter, mettre à jour ou supprimer du contenu.
  • NoAccess pour empêcher les utilisateurs d'accéder au site de collecte et de son contenu.Les utilisateurs qui tentent d'accéder au site recevez un message d'erreur

Donc à débloquer, les LockState doit être définie à Déverrouiller

Mais vraiment, je vous conseille de mettre en place un test-l'environnement de l'essayer.Configurer un environnement SharePoint Foundation dans une Machine Virtuelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top