使用PnP PowerShell创建SharePoint库每日定时告警失败求助
问题分析与解决
你的命令执行失败主要有两个核心问题:
1. -Time参数类型不匹配
Add-PnPAlert的-Time参数要求传入DateTime类型对象,但你通过Get-Date -Format "HH:mm"返回的是字符串格式的时间(比如"18:00"),参数类型不兼容导致命令无法识别时间配置。
正确的写法是直接传入未格式化的DateTime对象:
Add-PnPAlert -Title "Test-Alert" -List "Steuerberatung" -User "c:0t.c|tenant|bc76e8d8-eeda-40eb-a4d7-532f9550a1f3" -Frequency Daily -ChangeType All -Time (Get-Date -Hour 18 -Minute 0 -Second 0)
2. 时区偏移风险(可选优化)
如果你的PowerShell运行环境时区不是中欧时间(CET),需要明确指定时区创建时间对象,避免告警时间出现偏移:
# 获取中欧标准时区 $cetTimeZone = [System.TimeZoneInfo]::FindSystemTimeZoneById("Central European Standard Time") # 创建CET 18:00对应的DateTime对象 $alertTime = [System.TimeZoneInfo]::ConvertTimeFromUtc((Get-Date -Hour 16 -Minute 0 -Second 0).ToUniversalTime(), $cetTimeZone) Add-PnPAlert -Title "Test-Alert" -List "Steuerberatung" -User "c:0t.c|tenant|bc76e8d8-eeda-40eb-a4d7-532f9550a1f3" -Frequency Daily -ChangeType All -Time $alertTime
你可以自行验证类型差异:执行(Get-Date -Hour 18 -Minute 0).GetType()会返回DateTime,而(Get-Date -Format "HH:mm" -Hour 18 -Minute 0).GetType()返回String,这就是参数不兼容的根本原因。
内容的提问来源于stack exchange,提问作者DocSummer
相关产品推荐
相关产品推荐

