martedì 25 marzo 2014

L'angolo della Powershell - Cambiare il proprietario dei gruppi

Oggi per "L'angolo della Powershell" vediamo come cambiare programmaticamente il proprietario di tutti i gruppi di una site collection.

### Change group owner programmatically

$URL = "http://"

$site = get-SPSite $URL
# In questo caso l'ownership del sito passa ad un gruppo di SharePoint, ottenuto attraverso il nome
$newOwner =  $site.rootweb.siteGroups | where {$_.Name.Contains("")} 
$groups = $site.rootweb.siteGroups

foreach ($group in $groups)
    {        
        "Old group owner: " + $group.name + ": " + $group.owner 
        $group.owner = $newOwner
        $group.update()
        "New group owner: " + $group.name + ": " + $group.owner 
    }

martedì 11 marzo 2014

L'angolo della Powershell - Verificare l'esistenza di contenuto senza autorizzazioni

Oggi, nell'angolo della Powershell, vediamo come trovare siti, liste e singoli elementi ai quali non risulta assegnato alcuna lista di autorizzazioni.

Lo script viene eseguito ricorsivamente su tutti i siti secondari esisitenti a qualsiasi livello.

#
# Search for sites, libraries and items with no permission
#

#add-pssnapin microsoft.sharepoint.powershell

function CheckZeroPermission ($Pweb)
    {
        $site = get-spweb ($Pweb)
        
        if (($site.HasUniqueRoleAssignments) -and ($site.RoleAssignments.Count -eq 0))
        {
         
            "Sito: " + $site.Title + " - " + $site.url
        }
            
        foreach($list in $site.Lists)
            {
                if (($list.HasUniqueRoleAssignments) -and ($list.RoleAssignments.Count -eq 0))
                    {
                        ”     Lista: ” + $list.Title + " - " + $list.defaultviewurl
                    }
            
                foreach ($item in $list.Items)
                    {
                        if (($item.HasUniqueRoleAssignments) -and ($item.roleassignments.count -eq 0))
                            {
                             ”          Elemento:  | ” + $item.ID + “ | ” + $item.Name
                            }
                    }
             } 
         
            foreach ($subsite in $site.webs)
                {
                    CheckZeroPermission ($subsite.url)
                }
                
            $web.Dispose()        
    }

CheckZeroPermission("http://")