我目前正在每五分钟运行一个PowerShell脚本作为计划任务,以便将文件上传到SharePoint。
脚本如下所示:
$spWeb = Get-SPWeb ($rootUrl)
$spDocLibName = $destinationUrl
$spList = $spWeb.GetFolder($spDocLibName)
$spFiles = $spList.Files
$metadata = @{}
[...]
$spFile = $spFiles.Add($spDocLibName + "/" + $movedItem.Name, $movedItem.OpenRead(), $metadata, $true)
正如通常以这种方式启动时一样,powershell实例在任务完成时关闭。遗憾的是,SharePoint事件处理程序是在powershell的上下文中启动的,因此在关闭powershell实例时会取消它们。
我在这里的第一次尝试是在脚本结束时启动sleep-command,以便在运行以下操作时powershell仍在运行,但我不认为这是一个很好的解决方案,因为我不知道确切地说,事件处理程序需要多长时间。
现在我想尝试打开powershell实例并始终在此PowerShell实例中运行任务。这可能吗?如何?