powershell - 有没有办法在 Powershell 中获取重复事件的 Outlook 日历开始时间?
问题描述
在 Powershell 中,我试图从我的 Outlook 中获取日历条目的开始时间 - 除了定期约会之外,这工作正常,填充的日期似乎是从最初创建定期事件时开始的。有没有办法获取日历日期条目,而不是第一次输入重复事件的时间?我可能使用了不正确的属性;
$outlook = New-Object -ComObject outlook.application
$namespace = $outlook.GetNameSpace('MAPI')
$Calendar = [Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderCalendar
$folder = $namespace.getDefaultFolder($Calendar).items
#$folder.IncludeRecurrences = $True
$StartWeek = '02/12/2019'
$StartWeekDT = [datetime]::ParseExact($StartWeek,'dd/MM/yyyy', [cultureinfo]::InvariantCulture)
$EndWeekDT = $StartWeekDT.AddDays(5)
$Start = $StartWeekDT.ToString('dd/MM/yyyy') + " 00:00"
$End = $EndWeekDT.ToString('dd/MM/yyyy') + " 00:00"
$Filter = "[Start]>= '$Start' AND [End] <= '$End'"
$data = $Folder.Restrict($filter) | Select-Object
所以在这里你可以看到过滤器说 start 属性必须大于 02/12 - 这确实选择了重复事件条目。但是,当我尝试查看 start 属性时,它会显示一月的日期(创建时间)。我在任何属性中都看不到正确的日期,我尝试将 IsRecurring 设置为 false(以查看它是否会以正确的开始重新创建条目)并按照一些在线文章的建议使用 .IncludeRecurrences,但没有运气。以前有人遇到过这个问题吗?
05/12/2019 10:30:00
05/12/2019 10:00:00
05/12/2019 15:00:00
02/12/2019 16:30:00
03/12/2019 11:00:00
04/12/2019 16:00:00
05/12/2019 15:30:00
05/12/2019 16:30:00
14/01/2019 08:30:00
11/01/2019 16:30:00
16/01/2019 12:00:00
解决方案
无法弄清楚如何获取“仅此事件”开始属性,所以我只是通过添加 7 天(从重复开始日期开始)直到它在我的搜索范围内,以不同的方式找到开始值,然后将其分配给$entry.start 变量 - 用于进一步处理。请注意,这不会修改日历条目,而只是将 $entry.start 更新为属性已被拉出后一周内的值。然后我可以查询它是否是在星期一、星期二等。
Foreach($Entry in $data){
IF ($Entry.Start -lt $EndWeekDT){
for($i = $Entry.Start; $i -le $EndWeekDT; $i = $i.AddDays(7))
{
$Entry.Start = $i
}
}
etc..
}
推荐阅读
- arrays - HBase 数组和 Hive
- c++ - 寻找自动生成密钥并具有线性内存消耗的小型关联数组
- java - 整数到罗马“不兼容的类型:int 无法转换为布尔值 [in MainClass.java]”
- python - 取最后 N 天的平均值,包括 NaN
- java - 动态创建基于 Id 的 MongoDB 集合
- graph - https://graph.microsoft.com/v1.0/deviceAppManagement/managedAppRegistrations 过滤 bundleId 或 packageId
- c++ - 在函数中使用 const int 大小参数创建数组会在 Visual Studio C++ 中引发错误:表达式未计算为常量
- hyperledger-fabric - 错误:在截止日期之前无法连接 URL:grpc://localhost:7051
- sed - sed 语法不适用于 Ansible shell 模块
- python - 无法使用请求从下一页抓取名称