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

在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.dtcms.com/a/299454.html

相关文章:

  • SAP ABAP的数据通过调用泛微Restful API同步数据到OA建模表
  • 学习日志19 python
  • pytest中的rerunfailures的插件(失败重试)
  • 在 Scintilla 中为 Squirrel 语言设置语法解析器的方法
  • 【Kubernetes】使用StatefulSet进行的资源调度,扩缩容,更改配置到版本回滚,三种配置更新方式
  • c#中让图片显示清晰
  • 三、平衡桥电路
  • 060_泛型擦除与边界限定
  • MySQL数据库SQL语句进阶篇——连接查询与子查询详解
  • Traffic Lights set的使用
  • CSS变量与Houdini自定义属性:解锁样式编程新维度
  • Go 语言函数设计原则:避免修改传入参数
  • MCU中的GPIO(通用输入/输出)是什么?
  • [Qt]QString隐式拷贝
  • 利用DeepSeek解决kdb+x进行tpch测试的几个问题及使用感受
  • 系统架构设计师-【2025年上半年案例题】-真题分享
  • unittest 案例执行顺序详解
  • [SAP ABAP] ALV报表练习4
  • FreeRTOS-事件组
  • Cortex-M3内核SysTick定时器介绍
  • `munmap`系统调用及示例
  • 柔性智造:华控智能的垂直整合定制方案
  • 微服务springcloud http客户端feign
  • 伟淼科技李志伟:破解二代接班传承困局,系统性方案破除三代魔咒
  • Redis缓存策略以及bigkey的学习(九)
  • C语言——学习笔记
  • 数据结构(4)单链表算法题(上)
  • Linux DNS 服务器正反向解析
  • 深入分析计算机网络传输层和应用层面试题
  • 从压缩到加水印,如何实现一站式图片处理