使用 powershell 配置 Outlook

使用 powershell 配置 Outlook

我已经编写了这个脚本来重置 Outlook 配置文件并配置一个新的配置文件。此脚本正在删除旧配置文件并创建一个新配置文件并启动 Outlook...我希望在启动 Outlook 后也应该自动配置配置文件..有人可以建议如何在这个脚本中进一步执行此操作。

clear
if($process=(get-process 'outlook' -ErrorAction SilentlyContinue))
{
    Write-Host "Outlook is running so close it.." -ForegroundColor Green
    kill($process)
    Write-Host "Outlook is stopped " -ForegroundColor Green
}

$reg="HKCU:\Software\Microsoft\Office\15.0\Outlook\Profiles"
$child=(Get-ChildItem -Path $reg).name
foreach($item in $child)
{
    Remove-item -Path registry::$item -Recurse #-ErrorAction Inquire -WhatIf
}

Write-Host "All profiles removed successfully" -ForegroundColor Green
"`n"
Write-Host "Now create new profile for outlook" -ForegroundColor Green
"`n"
New-Item -Name "outlook" -Path $reg -Force -Verbose
Write-Host "New profile created" -ForegroundColor Green
"`n"
Write-Host "Launch outlook with newly created profile" -ForegroundColor Green
Start-Process 'outlook' -ErrorAction SilentlyContinue -ArgumentList '/profile "outlook" '

答案1

从 powershell 创建邮件配置文件的最佳方法可能是导入 PRF 文件,如本文所述:https://www.howto-outlook.com/howto/deployprf.htm#script

我会制作一个简短的步骤指南

下载 OCT 文件

将从安装中提取的 Admin 文件夹放入 Office 版本的安装目录中,然后从命令行运行setup.exe /admin

完成后,您将获得一个办公室设置,您可以跳过一切,立即前往展望概况 在此处输入图片描述 在这里输入您想要的设置

完成后前往导出设置并将 PRF 文件保存到网络上的某个位置。

现在有两种方法可以做到这一点

  1. 使用参数启动 Outlook.exe 执行 Outlook.exe /importprf "\\path\to\your\prf\file.prf" 不过,您只能运行此命令一次。因此,将其作为不断被触发的登录脚本可能不是一个好主意。
  2. 设置注册表项以导入文件
    • 钥匙:HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Outlook\Setup
    • 值名称:ImportPRF
    • 值类型:REG_SZ
    • 价值:path to prf-file

为了使此注册表值起作用,Setup 项中可能不存在FirstRun和值。First-Run

这样,当 Outlook 首次启动时,它只会导入一次文件。

答案2

披露:我代表我下面提到的产品

这可以通过 PowerMapi 轻松完成,PowerMapi 是一个 powershell 模块,可让您直接使用 mapi 执行高级操作,包括 outlook 配置文件。

我不知道引发这个问题的深层原因,但我知道这个选项还需要访问用户主机上的模块 DLL。如果这是一个阻碍因素,请忽略。

首先要知道的是,MAPI 配置文件只能大多配置完成,但并非完全配置完成。Outlook 在首次启动时完成配置。我假设真正的请求是能够进行此更改而无需任何提示最终用户处理...如果是这样,下面的示例将很好地实现这一点。此外,设置配置文件的标准方式与您从控制面板手动创建配置文件时看到的非常相似。本质上,给定服务器名称和邮箱标识符,存在一个 mapi 方法来“配置”配置文件。这会导致 mapi 和 exchange 服务器之间发生一些通信,以填写所有其他必要的详细信息。然后,当 Outlook 下次运行时,它会立即登录到邮箱并填写 Outlook 在配置文件中需要的任何其他详细信息。

PowerMapi example:
remove-MapiProfile "OldProfileName"
$newProf = new-MapiProfile -AddExchangeMailbox -ExchangeServername ex01.contoso.com -MailboxIdentifier useralias

该 cmdlet 还提供了在新配置文件中添加 Office365 邮箱或设置 Outlook Anywhere 连接的选项。查看详细信息新-MapiProfile

请注意,如果当前用户不是 malibox 的“所有者”,上述示例仍将提示输入用户名和密码。如果计算机未加入域,或者用户以本地用户身份(而非域用户身份)登录,则将提示输入凭据。

new-MapiProfile cmdlet 确实接受凭据作为参数,如果提供的凭据具有足够的权限来访问交换,则 cmdlet 将在没有提示的情况下完成。但是,这也意味着将凭据嵌入到 cmdlet/脚本中……这通常是不行的。最后,-Credentials 功能在 Windows10 和 Outlook 2013 及更高版本中不起作用,因为 MS 正在将标准凭据提示更改为使用 WinRT 版本,而不是旧的 win32 调用。请务必像往常一样进行测试。

最后,PowerMapi 提供对配置文件、配置文件服务和配置文件提供程序的所有属性和特性的完整访问。这样就可以预先填充配置文件的所有属性,而不必让 mapi 执行“配置”需要网络通信的调用。不过,这应该留给熟悉 mapi 的人去做。

答案3

我正在尝试使用 Office 2016 执行同样操作,但遇到了 2 个问题:

1.根据 Microsoft TechNet主题,“通过 Office 自定义工具设置 Outlook 2016 默认配置文件”

“PRF 文件不起作用,并且在 Outlook 2016 中不再需要,因为当您使用自动发现时,帐户应在帐户向导中自动配置。”

确实,我做不到。使用 OCT(参见第 2 点),我没有 Kage 屏幕截图中的选项。有人知道它是哪个版本吗?

2.无论如何,对Kage 的回答(刚刚发布)由于 2016 年的下载链接不再有效,现在微软覆盖了该链接指向的 2016 年 OCT 版本,您可以下载它,但它是 2019 年的版本:它将包含下图所示的文件:

2016 年 OCT 链接中包含的 2019 年文件

因此,需要从安装媒体(或您可以找到的其他方法)执行此操作,如https://deploymentmonkey365.wordpress.com/2016/02/08/customizing-office-2016-using-office-customization-tool/ 基本上,在安装媒体中,例如作为 Office 2016 DVD 映像。

使用页面上的截图:

安装介质:

安装媒体

管理文件夹:

管理文件夹

相关内容