Я работаю над 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" пустой