Как передавать команды powershell в c#

Цель — получить наименьшую базу данных сайта Exchange 2010, поэтому я пытаюсь запустить следующую команду powershell из c #,

Get-MailboxDatabase -server Exchange2010 -Status | select-object Name,DatabaseSize

Проблема I' m борется -с тем, как передать команду предложения Select.

Это моя попытка,

WSManConnectionInfo wsConnectionInfo = new WSManConnectionInfo(new Uri("https://" + ExchangeSite + "/powershell?serializationLevel=Full"),
    "http://schemas.microsoft.com/powershell/Microsoft.Exchange", getCredential());
wsConnectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
wsConnectionInfo.SkipCACheck = true;
wsConnectionInfo.SkipCNCheck = true;

rsRemoteRunspace = RunspaceFactory.CreateRunspace(wsConnectionInfo);
rsRemoteRunspace.Open();
Pipeline pipeLine = rsRemoteRunspace.CreatePipeline();

Collection<PSObject> DatabaSize = null;

Command myCommand = new Command("Get-MailboxDatabase");
myCommand.Parameters.Add("Server", "Exchange2010");
myCommand.Parameters.Add("Status", null);
Command myCommand2 = new Command("Select-Object");
    myCommand.Parameters.Add("Name");
myCommand.Parameters.Add("DatabaseSize");
pipeLineMB.Commands.Add(myCommand);
pipeLineMB.Commands.Add(myCommand2);
DatabaSize = pipeLine.Invoke();

но я получаю,

"A parameter cannot be found that matches parameter name 'Name'."

Пожалуйста, имейте в виду, что я не могу использовать SnapIn, потому что код должен работать на клиентской машине, которая выполняет командлеты на сервере Exchange.

Приветствуются любые советы.

РЕДАКТИРОВАТЬ

Я применил исправление, предложенное yamen, и команда смогла быть вызвана, но когда я пытаюсь получить значение,Я получаю :«Ссылка на объект не указывает на экземпляр объекта».

exception

Обратите внимание, что я могу получить значения Servername и Name, но это не удается в DatabaseSize, поэтому я предполагаю, что флаг «Status» установлен неправильно, потому что именно этот флаг включает это значение.

5
задан m0dest0 2 May 2012 в 05:22
поделиться