Я работаю над сценарием 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