当前位置: 首页 > ai >正文

在Power Automate Desktop中执行PowerShell获取SharePoint online某个文件夹的用户权限列表

1.简单介绍

 假如需要查看SharePoint online站点中某一个文件夹都给谁分配了权限,比如如下的文件夹,

        

获取权限的信息可以使用PowerShell或者代码的方式去调用SharePoint online的API,其中PnP PowerShell在执行SharePoint online相关操作也挺方便的。

这边尝试一下在Power Automate Desktop中执行PnP PowerShell脚本的方式去获取特定folder的权限分配信息并导出为csv文件。

2.具体说明

2.1 PnP PowerShell说明

这边使用的PnP PowerShell Module for SharePoint online版本是相对老一些的,如下图

        

当前PnP PowerShell for SharePoint online有了新的版本,Github仓库地址是https://github.com/pnp/powershell

新版本可以在Microsoft Extra ID中注册应用程序获取Application Id等信息,并且分配相应的Api权限,这样后续就可以以注册应用程序的形式连接SharePoint online。

在Microsoft Extra ID中注册应用程序也可以使用PnP PowerShell命令来进行,

Register-PnPEntraIDApp -ApplicationName "PnPPowerShellPractice" -Tenant xxxxxx.onmicrosoft.com -Interactive

 上面的命令会返回Application Id,然后可以使用Application Id进行SharePoint online服务的连接

$SiteURL = "[Your SharePoint online site URL]"
$ClientID = "[Your Application Id]"# Connect to SharePoint Online site
Connect-PnPOnline -Url $SiteURL -Interactive -ClientId $ClientID

本人的PnP PowerShell module是比较老的版本,目前没有使用注册应用程序的方式来连接

这边使用如下PnP PowerShell命令来连接SharePoint online,

$SiteURL = "[Your SharePoint online site URL]"
Connect-PnPOnline -Url $SiteURL -UseWebLogin; 

2.2 制作PAD工作流

PAD是Power Automate Desktop的简写,这边使用Power Automate流来调用PowerShell脚本

         

Power Automate Desktop中的Run PowerShell script action也可以传递参数进去,如上面图中,建立了三个Input Variable给要执行的脚本

         

note, 试验下来,给脚本的参数设置成Input Variable是可行的,如果直接在PAD流中设置Variable则脚本不能运行成功的。 

2.3 PowerShell脚本

由于SharePoint online的权限分配可以是SharePoint Group的形式来分配权限或者直接给用户分配权限,PnP PowerShell这边用的是如下命令来获取文件夹的RoleAssignments

Get-PnPProperty -ClientObject $Folder.ListItemAllFields -Property HasUniqueRoleAssignments, RoleAssignments

然后再遍历RoleAssignments进行逐个判断,如果是SharePoint Group则使用PnP PowerShell命令获取Group中的用户列表

$GroupMembers = Get-PnPGroupMembers -Identity $GroupName

如果是Unqiue User直接获取用户权限信息

        

最后将脚本放置到Power Automate Desktop的 Run PowerShell script节点中,

        

         

2.4 运行一下

 1) 在Power Automate Desktop界面中点击对应工作流的运行命令

        

 2) 在弹出的窗口中,设置三个Variable的值,如下图所示。设定好后,点击OK按钮

        

 3)脚本正在运行中,如下图

        

 4)运行完成后,弹出信息框显示PowerShell的执行结果,同时Flow Monitoring显示如下图,

        

         

 同时在设定的保存路径中,有SharePoint folder的权限报告生成,

        

SharePoint online特定文件夹的权限报告内容如下图所示, 

         

note, 由于文件夹内部会有子文件夹,可以先将所有的子文件夹列出来再生成报告,也可以采用递归的方式进行权限信息的导出

3.总结

本文介绍了一下在Power Automate Desktop中执行PowerShell脚本进行SharePoint online特定文件夹的权限报告生成的过程。

本文如果哪里有错误,麻烦告之,谢谢谢谢!

http://www.xdnf.cn/news/16265.html

相关文章:

  • excel删除重复项场景
  • 算法竞赛阶段二-数据结构(35)数据结构单链表模拟实现
  • Node.js 模拟 Linux 环境
  • 【每天一个知识点】GAN(生成对抗网络,Generative Adversarial Network)
  • Whisper语音转文字
  • 【洛谷】单向链表、队列安排、约瑟夫问题(list相关算法题)
  • 互联网应用主流框架整合 Spring Boot开发
  • Linux DNS 服务器正反向解析
  • 【IMMCKF】基于容积卡尔曼滤波(CKF)的多模型交互的定位程序,模型为CV和CT,三维环境,matlab代码|附下载链接
  • Nestjs框架: 基于Mongodb的多租户功能集成和优化
  • 算子推理是什么
  • 电脑开机后网络连接慢?
  • (Python)文件储存的认识,文件路径(文件储存基础教程)(Windows系统文件路径)(基础教程)
  • 【17】C# 窗体应用WinForm ——【文本框TextBox、富文本框RichTextBox 】属性、方法、实例应用
  • C++:list(2)list的模拟实现
  • Java中配置两个r2db连接不同的数据库
  • JavaScript:现代Web开发的核心动力
  • Mistral AI开源 Magistral-Small-2507
  • C++查询mysql数据
  • Codeforces Round 181 (Rated for Div. 2)
  • Bert项目--新闻标题文本分类
  • DAY31 整数矩阵及其运算
  • 告别镜像拉取慢!CNB无痛加速方案,一键起飞
  • [论文阅读] 人工智能 + 软件工程 | NoCode-bench:评估LLM无代码功能添加能力的新基准
  • JVM常见工具
  • swagger基本注解@Tag、@Operation、@Parameters、@Parameter、@ApiResponse、@Schema
  • 基于图神经网络的星间路由与计算卸载强化学习算法设计与实现
  • 【Linux手册】操作系统如何管理存储在外设上的文件
  • 基于 Claude Code 与 BrowserCat MCP 的浏览器自动化全链路构建实践
  • iOS 26,双版本更新来了