Учитывая, что Sort-Object - это команда, которая не распознается схемой с именем 'http://schemas.microsoft.com/powershell/Microsoft.Exchange", тогда я приступаю к разработке функции с использованием Snap-Ins, и она работает нормально.
Примечание Iберу первую базу данных, потому что режим сортировки по умолчанию возрастает.Также я хотел бы прокомментировать, что если вы скомпилируете в Framework 4.0, вы получите «сообщение об ошибке« Значение не может быть пустым »», поэтому вам нужно изменить на 3.5.
Имейте в виду, что это происходитиспользуется службой WCF, поэтому нет проблем с оснастками.Если вы хотите использовать его в любом другом приложении, например в консольном приложении, вам следует установить EMS 2010 на этот компьютер.
Эта функция в основном выполняет следующую команду PowerShell, Get-MailboxDatabase -Status|Размер базы данных объекта сортировки
private static string getLowServerStoreDN_SnapIn(string ExchangeSite)
{
string strResult = string.Empty;
RunspaceConfiguration rsConfig = RunspaceConfiguration.Create();
PSSnapInException snapInException = null;
PSSnapInInfo info = rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", out snapInException);
Runspace runspace = RunspaceFactory.CreateRunspace(rsConfig);
try
{
runspace.Open();
Command getMailbox = new Command("Get-MailboxDatabase");
getMailbox.Parameters.Add(new CommandParameter("Status", null));
Command sort = new Command("Sort-Object");
sort.Parameters.Add("Property", "DatabaseSize");
Pipeline commandPipeLine = runspace.CreatePipeline();
commandPipeLine.Commands.Add(getMailbox);
commandPipeLine.Commands.Add(sort);
Collection<PSObject> getmailboxResults = commandPipeLine.Invoke();
if (getmailboxResults.Count > 0)
{
PSObject getMailboxResult = getmailboxResults[0];
strResult = getMailboxResult.Properties["Name"].Value.ToString();
//foreach (PSObject getMailboxResult in getmailboxResults)
//{
// strResult = getMailboxResult.Properties["Name"].Value.ToString();
//}
}
}
catch (ApplicationException e)
{
//Console.WriteLine(e.Message);
throw new FaultException("function getLowServerStoreDN_SnapIn(" + ExchangeSite + "): " + e.Message,
FaultCode.CreateReceiverFaultCode("BadExchangeServer", "http://example.com"));
}
return strResult;
}