Как автоматически запустить команду exchange powershell из командного файла - PullRequest
0 голосов
/ 29 января 2020

У меня есть .bat файл со следующим кодом:

START C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -version 2.0 -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto"

Приведенный выше код успешно запустит новый хост powershell и затем подключится к моему серверу обмена.

Как можно Я запускаю команду ниже на хосте exchange powershell, из того же файла batch? (в основном я пытаюсь автоматизировать процесс)

Get-MessageTrackingLog -resultsize unlimited -start "01/01/2020 00:00:00" -Server hermod -EventId Deliver | where {[string]$_.sender -like '*@gmail.com'} | where {[string]$_.Recipients -like '*@gmail.com'} > "C:\MailReporter\Output\emails.txt"

1 Ответ

0 голосов
/ 29 января 2020

Я решил: мне нужно было использовать символ ; после первой команды, чтобы обозначить конец текущей команды. Затем я смог выполнить следующую команду без проблем.

Полный рабочий код:

START C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -version 2.0 -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; Get-MessageTrackingLog -resultsize unlimited -start '01/09/2019 00:00:00' -Server hermod -EventId Deliver | where {[string]$_.sender -like '*@gmail.co.uk'} | where {[string]$_.Recipients -like '*@gmail.co.uk'} > 'C:\MailReporter\Output\emails.txt' "
...