powershell - Outlook 互操作程序集中的 olFolderCalendar 未显示所有日历条目
问题描述
我正在使用Microsoft Scripting Guys 博客Get-OutlookCalendar
中的函数 ( ),如下所示:
Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
$olFolders = "Microsoft.Office.Interop.Outlook.OlDefaultFolders" -as [type]
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace("MAPI")
$folder = $namespace.getDefaultFolder($olFolders::olFolderCalendar)
$folder.items |
Select-Object -Property Subject, Start, Duration, Location
它工作得很好。问题是它似乎没有返回我所有的日历条目。例如,我使用这样的 where 子句调用函数:
$datefmt = "MM/dd/yyyy"
$today = (Get-Date).ToString($datefmt)
$tomorrow = ((Get-Date).AddDays(1)).ToString($datefmt)
Get-OutlookCalendar | where-object { $_.start -gt [datetime]$today -and $_.start -lt [datetime]$tomorrow } | Select-Object -Property Subject,Start |Sort-Object Start
从 Outlook 中,我看到四个条目,但代码只返回一个条目。
UI 中显示的日历是否以某种方式聚合了多个文件夹,或者任何人都可以提出其他原因?
解决方案
由于函数的示例,您将 DateTime 对象格式化为字符串,然后将其转换回 DateTime 对象以适合参数start
。
没有必要,你可以简单地做
$today = (Get-Date).Date # .Date sets the time to midnight (00:00:00)
$tomorrow = $today.AddDays(1)
Get-OutlookCalendar |
Where-Object { $_.Start -gt $today -and $_.Start -lt $tomorrow } |
Select-Object -Property Subject,Start | Sort-Object Start
现在,该函数将尝试查找(在撰写本文时)2020 年 8 月 24 日星期一 00:00:00 和 2020 年 8 月 25 日星期二 00:00:00 之间的日历项,即从今天开始的所有日历项.
推荐阅读
- python - Pycharm Can't install TensorFlow
- polymer-3.x - 用于聚合物 3 的轮播网络组件
- vb.net - Item.ToString 返回文本 listviewitem: {value} 而不仅仅是文本
- php - Symfony Twig 模板表单重定向损坏
- javascript - 未触发 Vue 指令的 Hook=componentUpdated
- apache - 具有相同 vhost documentroot 的多个 xampp
- cakephp - CakePHP 3.5 写和读 Cookie
- php - 将 json_encode 中的 null 转换为空字符串?
- php - 从 json 文件中删除一个字段(“ID”):
- docusignapi - 通过 C# 中的 DocuSign api 登录时出现“操作已超时”错误