Invoke-Command со Scriptblock в Filepath - без аргументов - PullRequest
0 голосов
/ 05 сентября 2018

Я работаю над сценарием PowerShell для переопределения текста об отсутствии на работе в Exchange 2016.

Я делаю это с удаленного сервера, который выполняет все задачи.

Это то, что я называю:

Invoke-Command -Session $Session -FilePath $filepath

Этот ps1 вызывается с параметром -FilePath, и он работает, он работает для более простого файла. Теперь к файлу, который помещается в filepath:

Get-Mailbox | Get-MailboxAutoReplyConfiguration |
    where {$_.AutoReplyState -eq "Disabled"} |
    Set-MailboxAutoReplyConfiguration -AutoReplyState Disabled -InternalMessage "ExampleTextIrrelevant"

Итак, я получаю все почтовые ящики и затем конфигурацию, только отключенную и устанавливаю новый текст.

Работает на ExchangeServer.

Теперь я получаю следующую ошибку: ему не нравится переменная $_. в моем предложении where, а также блок скриптов в предложении where, который ему не нравится.

Я также пытался заменить where на Where-Object и т. Д., Но это не работает.

Сообщения об ошибках (на немецком языке):

In Zeile:1 Zeichen:57  
+ ... ReplyConfiguration | where {$_.AutoReplyState -eq "Disabled"} | Set-M ...  
+                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
Skriptblockliterale sind im eingeschränkten Sprachmodus oder in einem
"Data"-Abschnitt nicht zulässig.  

In Zeile:1 Zeichen:58  
+ ...  Get-MailboxAutoReplyConfiguration | where {$_.AutoReplyState -eq "Di ...  
+                                                 ~~~~~~~~~~~~~~~~~  
Eigenschaftsverweise sind im eingeschränkten Sprachmodus oder in einem
"Data"-Abschnitt nicht zulässig.  

In Zeile:1 Zeichen:58  
+ Get-Mailbox | Get-MailboxAutoReplyConfiguration | where {$_.AutoReply ...  
+                                                          ~~  
Es wird auf eine Variable verwiesen, auf die im eingeschränkten Sprachmodus  
oder in einem Data-Abschnitt nicht verwiesen werden darf. Zu den Variablen,
auf die verwiesen werden darf, gehören folgende: $PSCulture, $PSUICulture,  
$true, $false, $null.  
+ CategoryInfo          : ParserError: (:) [], ParseException  
+ FullyQualifiedErrorId : ScriptBlockNotSupportedInDataSection  
+ PSComputerName        : sv-exchange  

Создание $Session:

$User = "domain\user"
$PWord = ConvertTo-SecureString -String "PasWorD" -AsPlainText -Force   
$UserCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord 

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://ExchangeServer/PowerShell/ -Authentication Kerberos -Credential $UserCredential

1 Ответ

0 голосов
/ 06 сентября 2018

Я нашел решение:

В IIS на сервере Exchange отредактируйте файл web.config Powershell. Там вы можете редактировать язык в FullLanguage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...