如何在Powershell中查询唯一的Outlook会议ID

用户名

我在下面的Powershell代码中显示了所有的Outlook会议。对于重复序列,我需要为每次事件标识一个唯一的会议ID。我尝试过的所有字段(GlobalAppointmentID,entryid,ConversationIndex)都给了我相同的ID。我应该使用哪个字段来区分每次出现。


Function Get-OutlookCalendar {
    param ( [DateTime] $rangeStart = [DateTime]::Now.AddDays(-2)
      , [DateTime] $rangeEnd   = [DateTime]::Now.AddDays(+1)) 

    $outlook = New-Object -ComObject Outlook.Application
    $session = $outlook.Session
    $session.Logon()
    $olFolderCalendar = 9
    $apptItems = $session.GetDefaultFolder($olFolderCalendar).Items
    $apptItems.Sort("[Start]")
    $apptItems.IncludeRecurrences = $true
    $range = "[End] >= '{0}' AND [Start] <= '{1}'" -f $rangeStart.ToString("g"), $rangeEnd.ToString("g")
    $myObject = New-Object System.Object
    $result=@()
    foreach($appt in $apptItems.Restrict($range)) { 
       $result+=$appt
    }
    return $result
} 

Get-OutlookCalendar | %{
    if($_.subject -like 'match.com test meeting'){
        $_
    }
}

道格·梅森

正如我所评论的,绝对没有必要“新建”一个数组$result = @(),每次迭代都销毁并重建它$result += $appt,只需要输出它即可return $result

就将定期会议彼此区分开而言,我发现做到这一点的唯一一致方法是使用日期属性之一。任何起始属性都是候选属性,而ticks子属性是完美的。

更新功能

Function Get-OutlookCalendar {
    param ( [DateTime] $rangeStart = [DateTime]::Now.AddDays(-2),
      [DateTime] $rangeEnd   = [DateTime]::Now.AddDays(+30)
      ) 

    $outlook = New-Object -ComObject Outlook.Application
    $session = $outlook.Session
    $session.Logon()
    $olFolderCalendar = 9
    $apptItems = $session.GetDefaultFolder($olFolderCalendar).Items
    $apptItems.Sort("[Start]")
    $apptItems.IncludeRecurrences = $true
    $range = "[End] >= '{0}' AND [Start] <= '{1}'" -f $rangeStart.ToString("g"), $rangeEnd.ToString("g")
    foreach($appt in $apptItems.Restrict($range)) { 
        $appt
    }
}

查看开始属性。

$entries = Get-OutlookCalendar

$entries | where {$_.subject -like 'test'} | foreach {
    $_ | Get-Member -Name start* | where name -notmatch 'timezone'
}

Name     MemberType Definition                   
----     ---------- ----------                   
Start    Property   Date Start () {get} {set}    
StartUTC Property   Date StartUTC () {get} {set} 
Start    Property   Date Start () {get} {set}    
StartUTC Property   Date StartUTC () {get} {set} 

$entries | where {$_.subject -like 'test'} | foreach {
    $_.start
}

Wednesday, September 23, 2020 8:00:00 AM
Thursday, September 24, 2020 8:00:00 AM
Friday, September 25, 2020 8:00:00 AM

和推荐的tick子属性

$entries | where {$_.subject -like 'test'} | foreach {
    $_.start.ticks
}

637364448000000000
637365312000000000
637366176000000000

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Microsoft Outlook 2013中一次接受多个会议邀请?

如何在Outlook中组织多部分会议?

如何在MySQL Group By查询中查找唯一值?

如何在SQL查询中获取唯一数据?

在PostgreSQL 12中按ID(唯一)分组的一次查询中同时获取会议室成员,会议室的所有者和管理员

如何在Swift中获取唯一的设备ID?

如何在Rails的两列中验证唯一ID?

如何在Symfony 4中生成唯一的ID?

如何在Android中获取唯一的设备硬件ID?

如何在Excel中修改唯一ID?

如何在Java中创建唯一ID?

如何在Android中重置AtomicInteger唯一ID?

如何在iOS设备中获取唯一ID?

如何在对象数组中搜索唯一的ID?

如何在Python类中创建唯一的增量ID

Flutterfire 如何在唯一 id doc() 中获取数据?

如何在 pandas 的多行中随机生成唯一 ID?

查询 ID 在 Redshift 中是否唯一

Outlook 日历事件 ID 在租户中是唯一的?

Win32 - 如何在 Outlook 日历中创建新约会或会议时获取事件

如何在Outlook 2010中显示新会议的“选项”选项卡?

如何在Outlook 2007中通过键盘快捷键接受会议邀请

如何在Outlook中的与会者之间共享会议文本

如何在jmespath查询中的数组中获取唯一值?

如何在JSON列中查询PostgreSQL中唯一的对象值

如何在同一查询中检查多个ID?

如何从Flutter中使用Firestore中的唯一文档ID进行查询?

使用 $in 查询时,如何获取 mongoDB 中每个唯一 ID 的 n 个文档?

如何在html div標籤中添加id屬性和唯一id