0

我正在使用 PowerShell 脚本来覆盖 Exchange 2016 上的外出文本。

我正在从运行所有任务的远程服务器上执行此操作。

这就是我所说的:

Invoke-Command -Session $Session -FilePath $filepath

这个 ps1 使用参数调用-FilePath并且它可以工作,它适用于更简单的文件。现在到放入文件路径的文件:

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

所以,我得到了所有的邮箱,然后是配置,只有禁用的一个并设置了新的文本。

它适用于 ExchangeServer。

现在我收到以下错误,他不喜欢$_.我的where子句中的变量以及他不喜欢的子句中的脚本块where

我也尝试whereWhere-Object等替换,但它不起作用。

错误信息(德语):

在 Zeile:1 Zeichen:57  
+ ... 回复配置 | 其中 {$_.AutoReplyState -eq "已禁用"} | 设置-M ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
Skriptblockliterale sind im eingeschränkten Sprachmodus oder in einem
“数据”-Abschnitt nicht zulässig。  

在 Zeile:1 Zeichen:58  
+ ... 获取邮箱自动回复配置 | 其中 {$_.AutoReplyState -eq "Di ...  
+ ~~~~~~~~~~~~~~~~~  
Eigenschaftsverweise sind im eingeschränkten Sprachmodus oder in einem
“数据”-Abschnitt nicht zulässig。  

在 Zeile:1 Zeichen:58  
+ 获取邮箱 | 获取邮箱自动回复配置 | 其中 {$_.AutoReply ...  
+ ~~  
Es wird auf eine Variable verwiesen, auf die im eingeschränkten Sprachmodus  
oder in einem Data-Abschnitt nicht verwiesen werden darf。祖登变量,
auf die verwiesen werden darf, gehören folgende: $PSCulture, $PSUICulture,  
$真,$假,$空。  
+ CategoryInfo : ParserError: (:) [], ParseException  
+ FullyQualifiedErrorId : ScriptBlockNotSupportedInDataSection  
+ PSComputerName : sv 交换  

创作$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
4

1 回答 1

0

我找到了解决方案:

在 Exchange Server 上的 IIS 上,编辑 Powershell 的 web.config。在那里您可以将语言编辑为 FullLanguage。

于 2018-09-06T12:06:38.630 回答