У меня есть сервер Win 2012 R2, который работает без присмотра с приложениями, зависящими от MS Outlook 2013. Я хотел бы создать ежедневный сценарий PowerShell, чтобы аккуратно закрыть Outlook, создать резервную копию VbaProject.OTM и перезапустите Outlook.

Кажется, что работает следующее, но я не уверен, что закрытие Outlook в порядке, и буду признателен за комментарии, если есть лучший способ.

stop-process -name OUTLOOK -EA SilentlyContinue

$date = get-date -format "MMddyyyy HHmm"
$fnft = "VbaProject - " + $date + ".OTM"
$source = "C:\Users\OCCReportManager\AppData\Roaming\Microsoft\Outlook\VbaProject.OTM"
$dest = "D:\FD Automation VBA Backups\" + $fnft
copy-item $source $dest
(Get-ChildItem $dest).LastWriteTime = Get-Date
$dest = "G:\PUBLIC\Mission Control\Flight Deck\Automation Source File Repository\" + $fnft
copy-item $source $dest
(Get-ChildItem $dest).LastWriteTime = Get-Date

start-process outlook

1 ответ1

0
Get-Process Outlook | Foreach-Object { $_.CloseMainWindow() | Out-Null } | stop-process –force

Это то, что я бы порекомендовал. Я украл его отсюда несколько недель назад и использовал его для пары подобных проектов, и он, кажется, работает, не вызывая никаких хлопот или резкого уничтожения процессов (если они не были уже повешены).

Другое решение, которое я использовал ранее, - это настройка сценария входа для пользователя, который (в вашем случае будет) создает резервную копию, а затем запускает Outlook. Затем я запланировал перезагрузку сервера каждую ночь, что позволило бы окнам останавливать процессы. К сожалению, это связано с тем, что вам нужно включить autologon, чтобы приложение могло работать в пользовательском контексте ... хотя установка заставки на 1 минуту и блокировка сервера в коммуникационной / компьютерной комнате значительно снизит вероятность сервера подвергается насилию

Надеюсь, это то, что вам нужно

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