Цель — получить наименьшую базу данных сайта 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, и команда смогла быть вызвана, но когда я пытаюсь получить значение,Я получаю :«Ссылка на объект не указывает на экземпляр объекта».
Обратите внимание, что я могу получить значения Servername и Name, но это не удается в DatabaseSize, поэтому я предполагаю, что флаг «Status» установлен неправильно, потому что именно этот флаг включает это значение.