Freigeben über


Verwendung der Exchange-Verwaltungsshell-Cmdlet-Antwort

Erfahren Sie, wie Sie die Antwort eines Exchange-Verwaltungsshell-Cmdlets in Ihrer verwalteten Exchange-Anwendung verwenden.

Gilt für: Exchange Online | Exchange Server 2013 | Office 365

Jedes Exchange-Verwaltungsshell-Cmdlet gibt eine oder mehrere PSObject-Instanzen zurück, die eine konsistente Ansicht jedes Objekts in der Exchange-Verwaltungsshell-Umgebung bereitstellen. Dieser Artikel enthält Informationen dazu, wie Sie die Eigenschaften einer PSObject-Instanz verwenden, um die Eigenschaftswerte des zugrunde liegenden Exchange Server 2013-API-Objekts zurückzugeben.

Voraussetzungen für die Verwendung von Cmdlet-Antworten

Um Cmdlet-Antworten verwenden zu können, benötigen Sie einen Verweis auf den System.Automation.Management-Namespace .

Hinweis

Wenn Sie Visual Studio zum Erstellen einer Anwendung verwenden, müssen Sie dem Projekt einen Verweis auf die System.Mangagement.Automation.dll-Assembly hinzufügen. Sie finden die Assembly an einem der folgenden Speicherorte:

  • Für die Betriebssysteme Windows XP und Windows Vista im Windows PowerShell-Installationsverzeichnis ($PSHOME)
  • Für die Betriebssysteme Windows 7 und Windows 8 im folgenden Ordner: Windows\assembly\GAC_MSIL\System.Management.Automation

Windows PowerShell Remoterunspace

Die Exchange-Verwaltungsshell verwendet Remotefunktionen Windows PowerShell für alle Befehle, auch für Befehle, die auf dem lokalen Server ausgeführt werden. Daher sind alle Antworten von Exchange-Verwaltungsshell-Cmdlets serialisiertes XML. Dies bedeutet, dass das Antwortobjekt zwar den Exchange-Objekttyp angibt, der zum Generieren der Antwort verwendet wurde, das Antwortobjekt jedoch nicht in den Exchange-Objekttyp umgewandelt werden kann. Stattdessen müssen Sie den Eigenschaftenbehälter verwenden, der vom Antwortobjekt verfügbar gemacht wird, um die Werte aus dem Exchange-Objekttyp abzurufen.

Der Eigenschaftenbehälter im Antwortobjekt enthält ein Schlüssel-Wert-Paar für jede öffentliche Eigenschaft oder Methode im Exchange-Objekttyp. Das Antwortobjekt enthält den Namen des zugrunde liegenden Exchange-Objekttyps. Sie können diesen Namen verwenden, um den Exchange-Objekttyp zu bestimmen, der durch das Antwortobjekt dargestellt wird, sodass Sie die entsprechende Eigenschaft extrahieren können. Jeder Wert im Eigenschaftenbehälter enthält auch Typinformationen, sodass Sie den Eigenschaftswert in den entsprechenden verwalteten Typ umwandeln können.

Verwenden der Cmdlet-Antwort

Die PSObject-Klasse macht die folgenden drei öffentlichen Eigenschaften verfügbar, die die Werte des zugrunde liegenden Exchange 2013-API-Objekts enthalten: Eigenschaften, Methoden und Member. Jede Eigenschaft, die vom Exchange 2013-API-Objekt verfügbar gemacht wird, verfügt über ein entsprechendes Schlüssel-Wert-Paar in den Eigenschaften eigenschaften und Membern . Ihre Anwendung kann die Properties-Auflistung anhand des Namens einer Eigenschaft indizieren, um den Wert der Eigenschaft abzurufen.

Sie können die TypeNames-Eigenschaft der PSObject-Instanz verwenden, um den Typ des zugrunde liegenden Exchange-Objekts zu bestimmen, das von der PSObject-Instanz gekapselt wird. Die TypeNames-Eigenschaft ist eine Auflistung von Zeichenfolgen, die die Objekthierarchie des dargestellten Typs enthält. Sie können diese Namen verwenden, um das Objekt zu bestimmen, das von der PSObject-Instanz dargestellt wird, sodass Sie die entsprechende Eigenschaft extrahieren können.

Im folgenden Codebeispiel wird die Cmdlet-Antwort verwendet, um den Inhalt der Properties-Auflistung einer PSObject-Instanz in der Konsole auszugeben. Das Codebeispiel erfordert einen Verweis auf den 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

Siehe auch