Azure功能:PowerShell脚本与SharePoint Online交互

时间:2016-06-30 09:47:08

标签: sharepoint-online azure-functions

我正在使用Azure Functions,特别是PowerShell脚本函数。我想知道如何使用与SharePoint Online联系的脚本。

要针对SharePoint Online运行,我通常会使用“SharePoint Online Management Shell”,它是预装SharePoint Online库的PowerShell版本,以便我可以使用Get-SPOSite等方法。

如何在Azure Function PowerShell脚本中包含此库,以便我可以使用这些功能?我假设我需要在我的脚本顶部加载库,但是如何加载库?

我已将DLL上传到我的函数中并尝试使用:

[System.Reflection.Assembly]::LoadFrom('Microsoft.Online.SharePoint.Client.Tenant.dll')

但这似乎不起作用。我认为我的问题是我不知道上传文件的绝对路径。这是我在左侧窗格中看到的内容:

enter image description here

但我不知道这些文件的路径是什么。

有什么想法吗?使用Azure功能时,文档很渺茫。

2 个答案:

答案 0 :(得分:5)

Azure Functions目录的路径是

D:\home\site\wwwroot\<YourFunctionName>

在最新的Azure Functions版本(版本0.3)中,我们支持代表您加载DLL。您需要创建一个名为 modules 的文件夹,然后将DLL上传到该文件夹​​中。实际上,您现在可以将脚本(.psm1),二进制(.dll)和清单(.psd1)模块上传到 modules 文件夹中,它们将是在执行脚本之前自动加载。

让我们使用示例MyMathLib程序集作为参考。

假设您有一个名为 RunSimplePowerShell 的函数,并已将名为 MyMathLib.dll 的自定义库上传到该文件夹​​中,如下所示,

D:\home\site\wwwroot\RunSimplePowerShell\modules\MyMathLib.dll

然后,您的PowerShell脚本名为run.ps1,驻留在

D:\home\site\wwwroot\RunSimplePowerShell\run.ps1

可以写成如下,

[MyMathLib.Methods]::Sum(5, 2)

$calculatorInstance= New-Object MyMathLib.Methods
$calculatorInstance.Product(5,2)

使用Azure Functions 0.3版,您现在可以跳过该行

[Reflection.Assembly]::LoadFile("D:\home\site\wwwroot\RunSimplePowerShell\MyMathLib.dll")

答案 1 :(得分:1)

稍微想出来。

要查找文件的绝对路径,可以通过访问Azure Functions中的控制台来执行此操作。要进入控制台需要点击一下。从Azure功能内部:

  

功能应用设置 - &gt;高级设置 - &gt;转到App Service   设置 - &gt;工具 - &gt;控制台

您将在命令提示符中看到目录名称。然后您可以使用:

[Reflection.Assembly]::LoadFile("<directory>\MyLibraryNameHere.dll")

拉入你的装配。