我有一个 powershell 脚本,当我通过 powershell 或 VS Code 执行它时,它工作得很好。但是,当我尝试通过任务计划程序(作为管理员并具有最高权限 ofc)执行它时,它不起作用。我正在使用下面的 PS 代码来搜索 sharepoint 中的数据。我认为这个问题仅与那些拥有超过 100K 数据的共享点库有关。看起来任务计划没有等待结果,因为如果库有超过 100K 的数据,下面的查询大约需要 5 分钟。有关如何使用任务计划解决此问题的任何帮助。
Connect-PnPOnline -Url "https://my.sharepoint.com/sites/Documnets"
$Docs = Get-PnPList | Where-Object { $_.BaseTemplate -eq 101 -and $_.Hidden -eq $false }
ForEach ($List in $Docs) {
Write-Host "Working on List Name :- " $List.Title
$Items = Get-PnPListItem -List $List.Title -PageSize 5000 | Sort-Object ID -Descending | Where-Object { ("1213356" -eq $_.FieldValues."AppNumber") }
Write-Host "Item found to update: $($Items.count)"
If ($Items.Count -gt 0) {
WriteLog -level INFO -message "Record found"
}
}
这是一个常见问题,需要检查以下事项:
确保任务计划程序操作选项卡中的“开始于(可选)”字段设置为脚本的目录。
检查“操作”选项卡中的设置。程序/脚本字段应设置为
Powershell
,添加参数字段应设置为 -ExecutionPolicy Bypass -File "your-script.ps1"
在脚本中包含 Out-File cmdlet 以写入日志文件以进行故障排除。您还可以使用
Start-Transcript
/Stop-Transcript
进行更详细的日志记录。
验证运行任务的用户帐户是否具有必要的权限。该帐户可能需要被允许“作为批处理作业登录”。