【发布时间】:2019-10-20 00:05:04
【问题描述】:
我对 SharePoint/Azure/PowerShell 还是很陌生,如果我问的是一个愚蠢的问题,我深表歉意!
我们目前在我们的 O365 租户上托管了客户端 SharePoint 网站,我们很快就会向我们各自的每个客户推出每个网站的访问权限。最初,只有每个客户的高级管理人员才能访问这些站点,但是随着时间的推移,我们很可能也会添加其他所有人;为了简化新用户流程并使我们不必添加每个单独的员工,我们一直在考虑使用 Flow 来自动化用户访问,目标是添加经过身份验证的外部用户,而不需要管理员的太多实际输入,而不是一个简单的批准/拒绝流程。
总体规划如下:
- 每个客户端站点都有一个名为“员工访问列表”的 SharePoint 自定义列表。所述列表将具有以下列:请求 ID(文本)、名字(文本)、姓氏(文本)、职位(文本)、公司(文本)、联系电话(文本)、电子邮件(文本)、 SharePoint Access(是/否布尔值)。
- 如果员工需要访问 SharePoint 网站,则他们各自的经理会将员工添加到列表中并填写上述所有字段,将“SharePoint 访问”项的值设置为“是”。李>
- 这将触发流程,并向我和其他管理员发送一封批准电子邮件,其中详细说明了要创建的用户以及提交请求的用户。
- 以某种方式插入脚本 - 如果请求获得批准,该脚本将运行,并为用户设置访问权限。
- 然后电子邮件通知会自动发送给 SharePoint 列表项的创建者,通知他们用户现在可以访问。
在第 4 步中,如果请求获得批准,我有点不知道该怎么做 - 我在下面编写了一个小 PowerShell 脚本,它几乎实现了我的目标,因为它创建了一个外部用户 PnP 组和 PnP 角色定义(如果还没有),拉出“员工访问”列表上的“电子邮件”字段中的内容并运行 Add-PnPUsertoGroup 将用户拉到 PnP 组,然后向用户发送一封电子邮件,其中包含指向 SharePoint 网站的链接,允许他们访问它。然而:
- 我编写的脚本针对 SharePoint 列表中的每个人,而理想情况下,我只希望脚本针对新添加到列表中/在批准电子邮件中列出的唯一用户,并且只针对他们。我假设我必须将来自 Flow 的信息通过管道传输到脚本中,我什至不确定这是否可行,如果是,我不知道该怎么做。
- 我知道 Azure Functions 和 Azure Automation 可用于将脚本插入到 Flows 中,但我都没有这方面的经验,所以我不确定哪个是更合适的选项。关于如何插入 PowerShell 脚本以及如何将流中的内容通过管道传输到所述脚本中是否有任何指导?
PowerShell脚本如下:
希望这一切都有意义 - 任何指导将不胜感激。
谢谢!
编辑: 就像一些额外的信息一样,这里是当前的流程:
【问题讨论】:
标签: powershell sharepoint azure-functions azure-automation power-automate