Сценарий Powershell 4.0 для утилизации MS Outlook в Win 2012 R2 Server?

380
Kenneth Berg

У меня есть сервер 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 
0

1 ответ на вопрос

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

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

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

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