SharePoint O365 获取具有特定角色的所有用户

SharePoint O365 Get All Users With Certain Role

有没有办法让所有 用户 在网站集和子网站级别拥有 "Full Control" 权限,并将他们的角色更改为其他角色? PowerShell 是理想的选择,但如果这是唯一的方法,CSOM 也可以。我知道我可以按角色获取组,但我需要一种方法来获取 明确添加的用户

我尝试了这个较旧的 Whosebug 问题: 但我在第一个 ctx.ExecuteQuery(); 上一直收到 403 禁止错误;对于所有网站,即使我是馆藏管理员。我也想知道是否有人有 PowerShell 的方法来做到这一点。

您需要 SharePoint Online 管理 shell 通过 Powershell 建立与 O365 的连接。

Introduction to the SharePoint Online management shell

根据错误信息,我怀疑您的代码中缺少凭据。

请尝试下面的代码,让我知道它是否适合您。

    static void Main(string[] args)
    {
        var webUrl = "[your_site_url]";

        var userEmailAddress = "[your_email_address]";

        using (var context = new ClientContext(webUrl))
        {
            Console.WriteLine("input your password and click enter");

            context.Credentials = new SharePointOnlineCredentials(userEmailAddress, GetPasswordFromConsoleInput());
            context.Load(context.Web, w => w.Title);
            context.ExecuteQuery();

            Console.WriteLine("Your site title is: " + context.Web.Title);

            //Retrieve site users             
            var users = context.LoadQuery(context.Web.SiteUsers);

            context.ExecuteQuery();

            foreach(var user in users)
            {
                Console.WriteLine(user.Email);
            }
        }
    }

    private static SecureString GetPasswordFromConsoleInput()
    {
        ConsoleKeyInfo info;

        SecureString securePassword = new SecureString();
        do
        {
            info = Console.ReadKey(true);
            if (info.Key != ConsoleKey.Enter)
            {
                securePassword.AppendChar(info.KeyChar);
            }
        }
        while (info.Key != ConsoleKey.Enter);

        return securePassword;
    }
}