2016-08-01 9 views
0

Ich erstelle ein Skript zum Importieren einer Dateiserverkonfiguration, die ich in eine XML-Datei exportiert habe.Wählen Sie ein Objekt von psttypames Powershell

Diese XML-Datei 3 Objekte enthält, 2 benutzerdefinierte Objekte und 1 deserialisiert ComObject mit den Konfigurationen zu importieren:

enter image description here

Ich brauche das COM-Objekt (das Objekt mit der SmtpServer Eigenschaft) zu wählen, aber Ich habe keinen Weg gefunden, dies zu erreichen.

$importedServerConfig = Import-Clixml -Path ("C:\empty\ServerConfigurations.xml") 
    $COMObject = $importedServerConfig|Where-Object{$_.notification -eq "notification"} 
    $COMObject 

diesen Code Mit mir den psobject durch seine Eigenschaft Wert auswählen kann, aber das mit dem ComObject funktioniert nicht.

Ich versuche, mit der Methode .gettype() zu filtern, aber das funktioniert nicht auf COMObject, also verwende ich pstypenames.

the available properties

$importedServerConfig = Import-Clixml -Path ("C:\empty\ServerConfigurations.xml") 
$COMObject = $importedServerConfig|Where-Object{$_.pstypenames -eq "Deserialized.System.__ComObject"} 
$COMObject 

Meine Frage ist: Gibt es eine Möglichkeit, eine bestimmte ComObject mit der pstypenames Eigenschaft in dieser XML-Datei zu wählen?

+1

'$ importedServerConfig | ? PSTypeNames -enthält Deserialized.System .__ ComObject' – PetSerAl

Antwort

0

Danke für die Antwort, Peter; Hier ist, was ich am Ende verwendet habe:

$importedServerConfig = Import-Clixml -Path 'C:\empty\ServerConfigurations.xml' 
$COMObject = $importedServerConfig | ? { $_.PSTypeNames -contains 'Deserialized.System.__ComObject' } 
$COMObject 
Verwandte Themen