使用Powershell脚本从Outlook中按名称获取日历

eqoofvh9  于 2022-12-04  发布在  Shell
关注(0)|答案(1)|浏览(185)

我使用了一个powershell脚本(在Google中找到的)从Exchange Outlook中获取日历,并在python中调用了该脚本。[x1c 0d1x]
但不知何故,我不能得到我想要的日历,我只是得到默认的日历,每次我运行代码。
我从互联网上下载了这个解决方案,并将其添加到我的powershell脚本中

$myNewFolder = $folder.Folders("name_of_the_calendar")
$myNewfolder.items

但这是不工作的,因为文件夹是默认日历,默认日历没有内部日历调用使用$folder.Folders

如何获取图片中显示的其他日历?

3hvapo4f

3hvapo4f1#

我不是PowerShellMaven,但Outlook对象模型对于所有编程语言都是通用的,因此您可能了解以下VBA宏中所需的序列或属性和方法调用:

Sub ListAllSharedCalendars()
    Dim olPane As NavigationPane
    Dim olMod As CalendarModule
    Dim olGrp As NavigationGroup
    Dim olNavFld As NavigationFolder
    Dim olCalFld As Folder
    
    Set Application.ActiveExplorer.CurrentFolder = Session.GetDefaultFolder(olFolderCalendar)
    Set olCalFld = Session.GetDefaultFolder(olFolderCalendar)
    Set olPane = Application.ActiveExplorer.NavigationPane
    Set olMod = olPane.Modules.GetNavigationModule(olModuleCalendar)
    Set olGrp = olMod.NavigationGroups.Item("Shared Calendars")
   
    For i = 1 To olGrp.NavigationFolders.Count
        Set olNavFld = olGrp.NavigationFolders.Item(i)
      
        Debug.Print olNavFld.DisplayName
    Next

End Sub

NavigationPane object表示活动Explorer对象显示的导航窗格。使用Modules属性可返回NavigationModules对象,该对象表示导航窗格所包含的导航模块的集合。使用DisplayedModuleCount可返回导航窗格中当前显示的NavigationModule对象的计数,使用CurrentModule属性可返回或设置当前选定NavigationModule对象
您可能还会发现NameSpace.GetSharedDefaultFolder方法很有用,它返回一个Folder对象,该对象表示指定用户的指定默认文件夹。

相关问题