1

Я сделал этот скрипт, чтобы сбросить профиль 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" '

2 ответа2

1

Лучший способ создать почтовый профиль из powershell - это, вероятно, импортировать файл PRF, как описано в этой статье: https://www.howto-outlook.com/howto/deployprf.htm#script

Я сделаю краткое руководство по установке

Загрузите файлы OCT

Поместите папку Admin, которую вы извлекаете из этой установки, в каталог с установкой версии Office, а затем запустите из командной строки setup.exe /admin

После этого вы получите настройки Office, вы можете пропустить все и сразу перейти к профилю Outlook Введите желаемые настройки здесь

После этого перейдите в Настройки экспорта и сохраните файл PRF где-нибудь в сети.

Сейчас есть 2 способа сделать это

  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

Чтобы это значение реестра работало, значения FirstRun и First-Run могут не существовать в ключе установки.

Таким образом, он будет импортировать файл только один раз при первом запуске Outlook.

-1

Раскрытие информации: я представляю продукт, который я упоминаю ниже

Это может быть сделано довольно легко с PowerMapi, модулем PowerShell, который позволяет вам продвигать вещи непосредственно с mapi, включая профили Outlook.

Я не знаю глубины проблемы, определяющей этот вопрос, но понимаю, что для этой опции также потребуется доступ к DLL модуля на хостах пользователей. Если это блокатор, не обращайте внимания.

Первое, что нужно знать, это то, что профиль MAPI может быть настроен только в основном , но не полностью. Outlook завершает настройку при первом запуске. Я предполагаю, что реальный запрос состоит в том, чтобы иметь возможность внести это изменение, не требуя никакого запроса для конечного пользователя, чтобы иметь дело с ... если так, пример ниже будет работать хорошо для этого. Кроме того, стандартный способ настройки профиля очень похож на тот, который вы видите, когда создаете его вручную с панели управления. По сути, учитывая имя сервера и идентификатор почтового ящика, существует метод mapi для "настройки" профиля. Это приводит к некоторой связи между mapi и сервером обмена для заполнения всех других необходимых деталей. Затем, когда Outlook запускается в следующий раз, он сразу входит в почтовый ящик и заполняет любые другие данные, которые нужны Outlook в профиле.

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

Командлет также предлагает варианты добавления почтового ящика Office365 в новый профиль или настройки подключений Outlook Anywhere. Посмотрите на детали для нового MapiProfile.

Имейте в виду, что в приведенном выше примере все равно будет запрашиваться имя пользователя и пароль, если текущий пользователь также не является "владельцем" malibox. Если компьютер не присоединен к домену, или пользователь входит в систему как локальный пользователь (не как пользователь домена), то будет выдан запрос на ввод учетных данных.

Командлет new-MapiProfile принимает учетные данные в качестве параметра, и если предоставленные кредиты имеют достаточные права для доступа к обмену, командлет будет выполнен без запросов. Однако это также будет означать встраивание учетных данных в командлет / скрипт ... что, как правило, запрещено. Наконец, функция -Credentials показывает, что она не работает с Windows10 и Outlook 2013 и более поздними версиями, поскольку MS изменяет стандартное приглашение кредита для использования версии WinRT, в отличие от старых вызовов win32. Обязательно проверь как всегда.

И, наконец, PowerMapi предоставляет полный доступ ко всем свойствам и атрибутам профилей, служб профилей и поставщиков профилей. С помощью этого можно предварительно заполнить все свойства профиля, вместо того, чтобы mapi выполнял вызов "configure", который требует сетевого взаимодействия. Однако это следует оставить тем, кто знаком с мапи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .