取消Outlook弹出窗口允许访问

时间:2016-03-30 07:17:19

标签: powershell outlook

运行以下PowerShell代码时:

$Outlook = New-Object -ComObject Outlook.Application   
$Stores = $Outlook.Session.Stores 
$Accounts = $Outlook.Session.Accounts
$Accounts | Select-Object DisplayName, UserName, SmtpAddress, ExchangeMailboxServerName, ExchangeMailboxServerVersion

弹出安全警告:

enter image description here

根据Microsoft,有办法解决这个问题。例如,可以Create a COM Add-in for Outlook而不是使用Outlook COM Object解释here。自定义COM Add-in for Outlook的另一个示例在StackOverflow上发布here,但是针对另一种语言发布。

使用Globals.ThisAddIn.Application应该possible,不是吗?有人可以向我解释如何使用PowerShell完成此操作吗?如果我们可以避免这种弹出窗口会很好,因为它只会让用户感到困惑。

2 个答案:

答案 0 :(得分:1)

在运行我的代码之前,通过将注册表编辑为本地管理员来找到workaround

Function Remove-OutlookSecurityPromptHC {
    [CmdLetBinding()]
    Param()

    if (Test-Path -Path 'HKLM:\SOFTWARE\Microsoft\Office\14.0\Outlook') {
        Write-Verbose 'Found MS Outlook 2010'

        if (-not (Test-Path -Path 'HKLM:\SOFTWARE\Microsoft\Office\14.0\Outlook\Security')) {
            New-Item -Path 'HKLM:\SOFTWARE\Microsoft\Office\14.0\Outlook\Security' | Out-Null
        }
        Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Office\14.0\Outlook\Security' -Name ObjectModelGuard -Value 2
        Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Office\14.0\Outlook\Security' -Name PromptOOMSend -Value 2
        Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Office\14.0\Outlook\Security' -Name AdminSecurityMode -Value 3
        Write-Verbose 'Outlook warning suppressed'
    }

    if (Test-Path -Path 'HKLM:\SOFTWARE\Microsoft\Office\12.0\Outlook') {
        Write-Verbose 'Found MS Outlook 2007'

        if (-not (Test-Path -Path 'HKLM:\SOFTWARE\Microsoft\Office\12.0\Outlook\Security')) {
            New-Item -Path 'HKLM:\SOFTWARE\Microsoft\Office\12.0\Outlook\Security' | Out-Null
        }
        Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Office\12.0\Outlook\Security' -Name ObjectModelGuard -Value 2
        Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Office\12.0\Outlook\Security' -Name PromptOOMSend -Value 2
        Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Office\12.0\Outlook\Security' -Name AdminSecurityMode -Value 3
        Write-Verbose 'Outlook warning suppressed'
    }
}

Remove-OutlookSecurityPromptHC -Verbose

运行此代码后,可能需要重新启动/注销才能激活。

答案 1 :(得分:0)

您需要确保在计算机上安装了最新的防病毒产品(如果您可以控制客户端环境)或使用RedemptionClickyes来解决安全提示。有关详细信息,请参阅http://www.outlookcode.com/article.aspx?id=52