C# Удаленное вычисляемое свойство PowerShell возвращает значение NULL - PullRequest
1 голос
/ 06 февраля 2020

Я работаю над C# веб-приложением, которое обрабатывает наши почтовые ящики Exchange 2016. Требуется, чтобы веб-приложение и наша установка Exchange 2016 были разделены, поэтому я использую удаленный PowerShell для доступа к нашему Exchange 2016. Я уже попробовал «New-PSSession, Import-PSSession, et c». подход, но он очень медленный, поэтому я бы предпочел не использовать этот подход.

Если я выполню следующий фрагмент кода, вычисляемое свойство "TotalItemSize" содержит допустимые данные.

var script = "Get-Mailbox -Identity XYZ | Select-Object -Property Name, Database, " +
               "@{ n = \"TotalItemSize\"; e = { (Get-MailboxStatistics -Identity XYZ).TotalItemSize }}";
pipeline.Commands = new PS.PSCommand().AddScript(script);
var result = pipeline.Invoke();

/* here result.Properties["TotalItemSize"].Value contains data */

Если я выполню следующий фрагмент кода, вычисляемое свойство "TotalItemSize" будет содержать значение null.

pipeline.Commands = new PSCommand().AddCommand("Get-Mailbox").AddParameter("Identity", "XYZ")
                    .AddCommand("Select-Object").AddParameter("Property",
                      new List<object>{
                        "Name",
                        "Database",
                        new Hashtable {
                          {"Name", "TotalItemSize"}, {"Expression", ScriptBlock.Create("(Get-MailboxStatistics -Identity XYZ).TotalItemSize")}
                        }
                      });
var result = pipeline.Invoke();

/* here result.Properties["TotalItemSize"].Value is null */

Может кто-нибудь сказать мне, что не так с последним фрагментом кода, поскольку вычисляемое свойство "TotalItemSize" пустой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...