我正在使用 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
。
我也尝试where
用Where-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