我已经设置了Azure自动化运行手册来运行与Sharepoint Online交互的PowerShell。我正在使用2个模块; Microsoft.Online.SharePoint.PowerShell和AzureAD。我的本地计算机上有相同的版本。我还为Azure自动化指定了凭据,这些凭据与我在本地计算机上运行的凭据相同。由于某些原因,Azure自动化Runbook不会执行SetCommand。如果我在本地计算机上运行脚本,则可以执行Set-Commands。
$myCred = Get-AutomationPSCredential -Name 'test'
$adminSiteUrl = "https://mytenant-admin.sharepoint.com"
# Connect to SPOService
Connect-SPOService -Url $adminSiteUrl -Credential $myCred
Get-SPOSite -Identity https://mytenant-my.sharepoint.com | select sharingcapability
Set-SPOSite -Identity https://mytenant-my.sharepoint.com -SharingCapability ExternalUserSharingOnly
Get-SPOSite
被执行并写入输出中,但是Set-SPOSite
却不执行任何操作。我已经从Sharepoint管理中心UI设置了Sharepoint外部共享设置,以仅允许将SharePoint共享共享给ExternalUserSharing,将OneDrive共享禁用。 Set-SPOSite
应该将OneDrive共享功能仅更改为ExternalUserSharing,但不能更改。
Azure Automation不会引发任何错误并成功完成脚本。我还尝试了Set-SPOUser
cmdlet从测试用户那里修改Site的IsSiteCollectionAdmin
-属性,只是为了测试它是否有效。再次可以在我的本地计算机上正常运行,但不能在Azure Automation Runbook上运行。
更新:我试图在Azure Function中实现相同的脚本,并且其行为与Azure Automation Runbook完全相同。我安装的模块与我在Azure自动化中使用的模块相同,仅此而已。仍然没有输出错误。