【问题标题】:Set Outlook's 'show this address list first' option设置 Outlook 的“首先显示此地址列表”选项
【发布时间】:2013-04-06 13:00:31
【问题描述】:

我需要更改 Outlook 2010 中数千台计算机的默认地址列表。要在 Outlook 中手动执行此操作,请转到地址簿>工具>选项>并从“打开地址簿时,首先显示此地址列表:”下拉框中选择一个地址簿。

这是我目前所拥有的:

$outlook = $(New-Object -ComObject Outlook.Application)
$Session = $outlook.Session
$Session.Logon()
$ab = $Session.AddressLists | ? {$_.Name -eq 'Example Address Book')}
$abdialog = $Session.GetSelectNamesDialog()
$abdialog.InitialAddressList = $ab

我收到的错误是:

异常设置“InitialAddressList”:“无法转换“System._ComObject”类型的值 “System._ComObject#{00063049-0000-0000-c000-000000000046}”键入“Microsoft.Office.Interop.Outlook.AddressList”。 在行:1 字符:1 + $abdialog.InitialAddressList = $Session.AddressLists | ? {$_.name -eq 'BAE 系统 ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : 未指定: (:) [], SetValueInvocationException + FullyQualifiedErrorId : ExceptionWhenSetting

请帮帮我,我快疯了!

【问题讨论】:

    标签: powershell


    【解决方案1】:

    我不知道这是否是一个错字,但在:

    $ab = $Session.AddressLists | ? {$_.Name -eq 'Example Address Book')}
    

    你应该删除最后一个右括号

    $ab = $Session.AddressLists | ? {$_.Name -eq 'Example Address Book'}
    

    之后你的代码对我有用。

    【讨论】:

    • 抱歉,这是一个错字,如果 $ab 为空,那么命令可以正常工作,您可以尝试在您的环境中用 $Session.AddressLists 中的地址列表替换 'Example Address Book' 以查看是否对你有用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多