Использование ответа командлета командной консоли ExchangeUse the Exchange Management Shell cmdlet response

Узнайте, как использовать ответ командлета командной консоли Exchange в управляемом приложении Exchange.Learn how to use the response from an Exchange Management Shell cmdlet in your Exchange managed application.

Применимо к: Exchange Online | Exchange Server 2013 | Office 365Applies to: Exchange Online | Exchange Server 2013 | Office 365

Каждый командлет командной консоли Exchange возвращает один или несколько экземпляров PSObject , которые предоставляют согласованное представление любого объекта в среде командной консоли Exchange.Each Exchange Management Shell cmdlet returns one or more PSObject instances that provide a consistent view of any object in the Exchange Management Shell environment. В этой статье приводятся сведения о том, как использовать свойства экземпляра PSObject для возврата значений свойств базового объекта API сервера Exchange Server 2013.This article provides information about how to use the properties of a PSObject instance to return the property values of the underlying Exchange Server 2013 API object.

Предварительные требования для использования ответов командлетовPrerequisites for using cmdlet responses

Чтобы использовать ответы командлетов, вам потребуется ссылка на пространство имен System. Automation. Management .To use cmdlet responses, you need a reference to the System.Automation.Management namespace.

Примечание

При создании приложения с помощью Visual Studio необходимо добавить в проект ссылку на сборку System. Мангажемент. Automation. dll.When you are using Visual Studio to create an application, you must add a reference to the System.Mangagement.Automation.dll assembly to the project. Сборку можно найти в одном из следующих расположений:You can find the assembly in one of the following locations:

  • Для ОС Windows XP и Windows Vista — каталог установки Windows PowerShell ($PSHOME).For Windows XP and Windows Vista operating systems, the Windows PowerShell installation directory ($PSHOME).
  • Для ОС Windows 7 и Windows 8 — папка Windows\assembly\GAC_MSIL\System.Management.Automation.For the Windows 7 and Windows 8 operating systems, the following folder: Windows\assembly\GAC_MSIL\System.Management.Automation.

Удаленное пространство выполнения Windows PowerShellWindows PowerShell remote runspace

Командная консоль Exchange использует удаленные функции Windows PowerShell для всех команд, даже команд, выполняемых на локальном сервере.The Exchange Management Shell uses remote Windows PowerShell features for all commands, even commands that are run on the local server. В результате все ответы от командлетов командной консоли Exchange сериализуются в XML.As a result, all responses from Exchange Management Shell cmdlets are serialized XML. Это означает, что несмотря на то, что объект Response указывает тип объекта Exchange, который использовался для создания ответа, объект Response не может быть приведен к типу объекта Exchange; Вместо этого необходимо использовать контейнер свойств, предоставленный объектом Response для получения значений из типа объекта Exchange.This means that although the response object indicates the Exchange object type that was used to generate the response, the response object cannot be cast to the Exchange object type; instead, you must use the property bag that is exposed by the response object to obtain the values from the Exchange object type.

Контейнер свойств в объекте Response содержит набор ключей и значений для каждого общедоступного свойства или метода в типе объекта Exchange.The property bag in the response object contains a key/value pair for each public property or method in the Exchange object type. Объект Response содержит имя базового типа объекта Exchange; Это имя можно использовать для определения типа объекта Exchange, представленного объектом Response, чтобы можно было извлечь соответствующее свойство.The response object contains the name of the underlying Exchange object type; you can use this name to determine the Exchange object type that is represented by the response object so that you can extract the appropriate property. Каждое значение в контейнере свойств также включает сведения о типе, чтобы можно было привести значение свойства к соответствующему управляемому типу.Each value in the property bag also includes type information so that you can cast the property value to the appropriate managed type.

Использование ответа командлетаUse the cmdlet response

Класс PSObject предоставляет следующие три общедоступные свойства, которые содержат значения базового объекта API Exchange 2013: Свойства, методыи элементы.The PSObject class exposes the following three public properties that contain the values of the underlying Exchange 2013 API object: Properties, Methods, and Members. Каждое свойство, предоставляемое объектом API Exchange 2013, имеет соответствующую запись key/value в свойствах Properties и Members .Each property that is exposed by the Exchange 2013 API object has a corresponding key/value pair in the Properties and Members properties. Приложение может индексировать коллекцию свойств по имени свойства, чтобы получить значение свойства.Your application can index the Properties collection by the name of a property to retrieve the value of the property.

Свойство typenames экземпляра PSObject можно использовать для определения типа базового объекта Exchange, который инкапсулируется экземпляром PSObject .You can use the TypeNames property of the PSObject instance to determine the type of the underlying Exchange object that is encapsulated by the PSObject instance. Свойство typenames — это коллекция строк, которая содержит иерархию объектов представленного типа.The TypeNames property is a collection of strings that contains the object hierarchy of the represented type. С помощью этих имен можно определить объект, представленный экземпляром PSObject , чтобы можно было извлечь соответствующее свойство.You can use these names to determine the object that is represented by the PSObject instance so that you can extract the appropriate property.

В следующем примере кода используется ответ командлета для вывода содержимого коллекции свойств экземпляра PSObject в консоли.The following code example uses the cmdlet response to print the contents of the Properties collection of a PSObject instance on the console. В этом примере кода требуется ссылка на пространство имен System. Automation. Management .The code example requires a reference to the System.Automation.Management namespace.

foreach (PSPropertyInfo propertyInfo in psObject.Properties)
{
    Console.WriteLine(string.Format("{0}: {1}",
        propertyInfo.Name, propertyInfo.Value);
}

For Each PropertyInfo As PSProperty In ObjectInfo.Properties
    Console.WriteLine(String.Format("{0}: {1}", PropertyInfo.Name, PropertyInfo.Value))
Next

См. такжеSee also