Я не могу понять, как захватить приведенный ниже текст для разбора. Я попытался установить его в переменную, а также перенаправить все потоки с помощью *> & 1. Как я могу получить выходной текст? *> & 1 работает для ошибок, но не для текста ниже по какой-то причине? Запись в файл невозможна.
Connect-Mailbox -Identity $guidT -user $targetDNT -Alias $aliasT -Database $databaseT -DomainController $domainSpecificDCsSourceAccountT[0]
Я также пытался
$outValue = Connect-Mailbox -Identity $guidT -user $targetDNT -Alias $aliasT -Database $databaseT -DomainController $domainSpecificDCsSourceAccountT[0] *>&1
ПРЕДУПРЕЖДЕНИЕ: операция завершена успешно, но изменение не вступит в силу до тех пор, пока не станет активным Происходит репликация каталогов.
[edit] Для repro эта команда, похоже, попадает в ту же ситуацию, и ее проще настроить / настроить
$var = Set-Mailbox $sourceUserT -LitigationHoldEnabled $false
[edit2]
Некоторые команды, такие как set-mailbox, будут работать, если вы измените тип со строки на массив, например, но connect-mailbox не может использовать это?
Так что это была глупая удача, это работает для команды set-mailbox, но не для команды connect-mailbox?
PS> Set-Mailbox "first.last" -LitigationHoldEnabled $false -WarningVariable wv
WARNING: The command completed successfully but no settings of 'xxx/last, first' have been modified.
PS> $wv
PS>
Однако, когда это было сделано так
[System.Collections.ArrayList]$wvar = @();
Set-Mailbox "onprem.detailee1" -LitigationHoldEnabled $false -WarningVariable +wvar
WARNING: The command completed successfully but no settings of 'xxxx/last, first' have been modified.
PS> write-host $wvar
The command completed successfully but no settings of 'xxxx/last, first' have been modified.
Поэтому Powershell не может выводить некоторые выходные данные (предупреждение, error, et c) в строку, однако они могут добавить объект в массив. Как ни странно, нетипизирующая часть языка Powershell здесь не применима.