Получить разрешение веб-сайта с Powershell - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь выяснить, как получить хорошо известные списки разрешений для веб-сайтов с помощью Powershell.Я перепробовал несколько методов.Мне кажется, что лучшее решение - попробовать что-то вроде $spWeb.RoleAssignments, но это дает мне не только пользователей и группы с разрешениями ist для spweb .Я также получаю назначения ролей из уникальных списков и библиотек на веб-сайте.

У вас есть предложения, как я могу выполнить фильтрацию, чтобы проверить, есть ли у пользователя, например, разрешение на чтение для spweb (без учета списков и дочерних сайтов)?

Моя цель - шаг за шагом проверить для пользователя (группу, шаг за шагом, spweb и ist уникальные списки и библиотеки).) как "NT AUTHORITY \ Authenticated Users".Затем я хочу удалить назначение роли и добавить новое назначение роли с группой моих коллег, чтобы не все могли видеть контент.Уникальная структура разрешений должна остаться.

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете проверить, есть ли у пользователя определенный уровень разрешений, используя метод SPWeb.DoesUserHavePermissions:

public bool DoesUserHavePermissions (строка входа, SPBasePermissionsmissionsMask)

метод SPWeb.DoesUserHavePermissions (String, SPBasePermissions)

    using (SPSite site = new SPSite("http://sp/"))
    {
        using (SPWeb web = site.OpenWeb())
        {
            // Make sure the current user can enumerate permissions.
            if (web.DoesUserHavePermissions(SPBasePermissions.EnumeratePermissions))
            {
                // Specify the permission to check.
                SPBasePermissions permissionToCheck = SPBasePermissions.ViewListItems;
                Console.WriteLine("The following users have {0} permission:", permissionToCheck);

                // Check the permissions of users who are explicitly assigned permissions.
                SPUserCollection users = web.Users;
                foreach (SPUser user in users)
                {
                    string login = user.LoginName;
                    if (web.DoesUserHavePermissions(login, permissionToCheck))
                    {
                        Console.WriteLine(login);
                    }
                }
            }
        }
    }
    Console.ReadLine();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...