Код: Выделить всё
"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
Мобильная версия