Ошибка при использовании командлета «Select-Abject» от C# до PowerShellC#

Место общения программистов C#
Ответить
Anonymous
 Ошибка при использовании командлета «Select-Abject» от C# до PowerShell

Сообщение Anonymous »

Я пытаюсь использовать командлет «select-object» в C#, чтобы получить определенное значение из объекта «psmemberinfo» в PowerShell.

Код: Выделить всё

"EmailAddresses": {dir: dirAddress, smtp: address1, smtp: address2}.

Если я запускаю следующую команду в PowerShell, я получаю значение "Dir":

Код: Выделить всё

Get-RemoteMailbox *identity* | Select-Object @{Name='EmailAddresses';Expression={($_.EmailAddresses | Where-Object {$_ -clike 'dir*'} | ForEach-Object {$_ -replace 'dir:',''}) -join ','}}

Мне нужно выполнить ту же задачу, но из C# runspace. Я попытался сделать следующее: < /p>

Код: Выделить всё

using (PowerShell ps = PowerShell.Create())
{

string filter = "Select-Object @{{Name=\"EmailAddresses\";Expression={{($_.EmailAddresses | Where-Object {{$_ -clike \"dir*\"}} | ForEach-Object
{{$_ -replace \"dir:\",\"\"}}) -join \",\"}}}";

ps.Runspace = Runspace;
ps.AddCommand("Get-RemoteMailbox")
.AddParameter("Identity", identity)
.AddCommand(filter);
}
Но я получаю следующую ошибку:
"Термин 'select -object @{name =' emailaddresses '; Express = {($ .emailAddresses | where -object {$ -clike' dir*'} | foreach -object {$ _ -replace', ' ','}} 'не распознается как имя Cmdlet, функцию, файл скрипта или управляемая программа. "
По сути, это не признает ту же точную команду, которую я только что выполнил в оболочке Exchange Management.>

Подробнее здесь: https://stackoverflow.com/questions/776 ... powershell
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»