во-первых, просто чтобы сказать, что мои навыки PowerShell ограничены поэтому, пожалуйста, быть нежным; -) ...Remote PowerShell вопрос скрипт для добавления IP-адреса в качестве реле - обмен 2010
Так что я построил 4 или 5 с помощью Microsoft, неизбежное Orchestrator по существу запускает несколько удаленных сценариев powershell, которые выполняют различные простые задачи обмена, такие как настройка ответа OutOfOffice, включение почтовых ящиков, создание общих почтовых ящиков с различными разрешениями и т. Д. Я использовал ту же базовую структуру/метод соединения для этих функций, которые работают нормально, т.е.
$ExchangeCAS = "<CASServerName>"
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<CASServerNameFQDN>/PowerShell/
import-PSSession $Session
<script body with exchange cmdlets>
remove-PSSession $Session
Однако, я пытаюсь создать дополнительную книгу, чтобы автоматически добавить I P адресован как ретранслятор для наших 4-х серверных серверов - это довольно простой сценарий (который я выкопал/подстроил из Интернета), но он не работает при запуске из Orchestrator. Он отлично работает, когда я запускаю его из PowerShell ISE на сервере, на котором установлены средства обмена Exchange, и тот факт, что другие сценарии обмена (аналогичные), которые работают, по меньшей мере исключают любые проблемы с разрешениями для учетной записи службы Orchestrator сценарий. Для справки ниже приведено полный сценарий, я пытаюсь запустить из Orchestrator как .Net деятельность, и я тестирование с помощью PowerShell ISE на Orchestrator сервере: -
$ExchangeCAS = "<ExCAS>"
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<ExCASFQDN>/PowerShell/
import-PSSession $Session
# Get Receive Connectors to update
$listofIPs = Import-Csv \\<TargetSERVER>\d$\psscripts\MailboxRightsScript\scorch\AddIPlist.TXT
$recCons= Get-ReceiveConnector | Where {$_.Name -match"Anonymous Relay"}
ForEach ($recCon in $recCons)
{
Write-Host "Updating", $recCon.Identity
forEach($line in $listofIPs)
{
$recCon.RemoteIPRanges +=$line.IP
}
Set-ReceiveConnector $recCon -RemoteIPRanges $recCon.RemoteIPRanges
}
remove-PSSession $Session
Ошибки Я вижу с сервера Orchestrator ISE является как показано ниже:
Невозможно обработать преобразование аргументов по параметру «Идентификация». Невозможно преобразовать значение «\ Анонимное реле» типа «Deserialized.Microsoft.Exchange.Data.Directory.SystemConfiguration.ReceiveConnector» в типа «Microsoft.Exchange.Configuration.Tasks.ReceiveConnectorIdParameter».
Из-за траления через некоторые статьи кажется, что это проблема с передачей данных между локальной и удаленной powershell и «гидратацией» объектов. TBH много деталей этих обсуждений немного над моей головой, когда дело доходит до powershell, поэтому не желая лениться, кто-нибудь сможет предоставить решение сценария powershell, основанное на том, что я пытался, над которым я могу работать как .net от Orchestrator, чтобы добавить IP-адрес/адрес (предпочтительно из входного файла) в качестве реле. Было бы хорошо знать, легко ли изменить решение, чтобы удалить адрес как реле.
Любая помощь очень ценится ...
Вы можете попробовать его со следующими Import-Module (Import-PSSession $ сеанса -AllowClobber) -Global, вместо Import-PSSession –
Привет там, так что на работу после выходных, чтобы попробовать это и, увы, нет радости ... Когда я запускаю вашу версию из ISE, я все еще вижу те же ошибки, что и преобразование десериализованного значения, как указано выше. Любые другие предложения - очень рады попробовать что-нибудь, чтобы заставить его работать ... ура – user2567758