Вопрос

Я убираю ферму, на которой есть множество мусорных групп. Есть ли простой способ определить, был ли какой -нибудь из этих групп был назначен доступ к чему -либо? Намерение состоит в том, чтобы удалить группы, у которых есть члены, но не дают никаких привилегий.

Это было полезно?

Решение

О, дорогой, это кажется классическим случаем RTFM.

Перейдите в группу, как и на странице, где члены перечислены, и перейдите в «Настройки»> «Просмотреть разрешения группы».

Другие советы

Из коробки нет «легкого» способа сделать это. Вы могли бы что -то поднять в PowerShell, чтобы итерация через группы и искать все на ферме, чтобы увидеть, имеет ли эта группа доступ к чему -либо (очевидно, если бы это большая ферма, вы бы хотели отключить ее с часами). Есть также несколько сторонних инструментов, которые помогают с этим; Я считаю, что у Axceler есть инструмент, который помогает с управлением группой, но обычно эти инструменты немного дороги, если вы собираетесь сделать это только один раз.

Не существует решения для бокса, но посмотрите на эти два решения. Может быть, они могли бы вам помочь.

SharePoint Access Cheper Web Part: http://accesschecker.codeplex.com/

SharePoint разрешений менеджер: http://permissionsmanager.codeplex.com/

Вы также можете программно запросить разрешения группы. Образец кода в PowerShell:

# inject fake context 
$web = Get-SPWeb "http://intranet.contoso.com"
$request = New-Object System.Web.HttpRequest("", $web.Url, "") 
$response = New-Object System.Web.HttpResponse(New-Object System.IO.StreamWriter(New-Object System.IO.MemoryStream)) 
$dummyContext = New-Object System.Web.HttpContext($request, $response) 
$dummyContext.Items["HttpHandlerSPWeb"] = [Microsoft.SharePoint.SPWeb]$web 
[System.Web.HttpContext]::Current = $dummyContext 
$groupPermissions = New-Object Microsoft.SharePoint.WebControls.GroupPermissions 
# set your group here 
$groupId = $web.SiteGroups["Team Site Owners"].ID 
$groupPermissions.GroupId = $groupId 
# set dummy Page 
$groupPermissions.Page = New-Object System.Web.UI.Page 
# invoke private CreateDataTable method 
$groupPermissionsType = $groupPermissions.GetType() 
$bindingFlags = [System.Reflection.BindingFlags]::NonPublic -bor [System.Reflection.BindingFlags]::Instance 
$mi_CreateDataTable = $groupPermissionsType.GetMethod("CreateDataTable", [System.Reflection.BindingFlags]($bindingFlags)) 
$dataTable = $mi_CreateDataTable.Invoke($groupPermissions, $null) 
#process results 
$regExpPattern = [regex]'<span dir="ltr">(?<scopeUrl>.*?)</span>' 
$dataTable | % { 
  $scopeUrl = $regExpPattern.match($_.ScopeUrl).groups[1].value 
  Write-Host $scopeUrl $_.Role
}

Узнайте больше об этом здесь, или здесь о C# эквивалент здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top