Freigeben über


New-Object

Erstellt eine Instanz eines Microsoft .NET Framework-Objekts oder COM-Objekts.

Syntax

New-Object -ComObject <string> [-Strict] [-Property <hashtable>] [<CommonParameters>]

New-Object [-TypeName] <string> [[-ArgumentList] <Object[]>] [-Property <hashtable>] [<CommonParameters>]

Beschreibung

Mit dem Cmdlet "New-Object" wird eine Instanz eines .NET Framework-Objekts oder COM-Objekts erstellt.

Sie können den Typ einer .NET Framework-Klasse oder eine ProgID eines COM-Objekts angeben. Standardmäßig geben Sie den vollqualifizierten Namen einer .NET Framework-Klasse ein, und das Cmdlet gibt einen Verweis auf eine Instanz dieser Klasse zurück. Um eine Instanz eines COM-Objekts zu erstellen, verwenden Sie den ComObject-Parameter und geben die ProgID des Objekts als Wert an.

Parameter

-ArgumentList <Object[]>

Gibt eine Liste von Argumenten an, die an den Konstruktor der .NET Framework-Klasse übergeben werden sollen. Trennen Sie die Elemente in der Liste durch Kommas (,). Der Alias für ArgumentList lautet "Args".

Erforderlich?

false

Position?

2

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-ComObject <string>

Gibt die ProgID des COM-Objekts an.

Erforderlich?

true

Position?

named

Standardwert

Keiner

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Property <hashtable>

Legt Eigenschaftenwerte fest und ruft Methoden des neuen Objekts auf.

Geben Sie eine Hashtabelle ein, in der die Schlüssel den Namen von Eigenschaften oder Methoden entsprechen und die Werte Eigenschaftenwerte oder Methodenargumente sind. New-Object erstellt das Objekt und legt jeden Eigenschaftenwert fest. Jede Methode wird in der Reihenfolge aufgerufen, in der sie in der Hashtabelle angezeigt wird.

Wenn das neue Objekt von der PSObject-Klasse abgeleitet wird und Sie eine Eigenschaft angeben, die für das Objekt nicht vorhanden ist, fügt New-Object dem Objekt die angegebene Eigenschaft als NoteProperty hinzu. Wenn das Objekt kein PSObject ist, generiert der Befehl einen Fehler ohne Abbruch.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Strict

Gibt an, dass ein Fehler ausgelöst werden soll, wenn für das zu erstellende COM-Objekt eine Interop-Assembly verwendet wird. So können Sie tatsächliche COM-Objekte von .NET Framework-Objekten mit COM-Callable-Wrappern unterscheiden.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-TypeName <string>

Gibt den vollqualifizierten Namen der .NET Framework-Klasse an. Sie können nicht sowohl den TypeName-Parameter als auch den ComObject-Parameter angeben.

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

Keiner

Eingaben können nicht über die Pipeline an dieses Cmdlet übergeben werden.

Ausgaben

Object

New-Object gibt das erstellte Objekt zurück.

Hinweise

Mit New-Object wird die am häufigsten verwendete Funktionalität der VBScript-CreateObject-Funktion bereitgestellt. Eine Anweisung in VBScript, z. B. "Set objShell = CreateObject("Shell.Application")", kann in eine Anweisung in Windows PowerShell, z. B. "$objShell = new-object -comobject "Shell.Application", umgewandelt werden.

Mit New-Object wird die in der Windows Script Host-Umgebung verfügbare Funktionalität erweitert, da die Arbeit mit .NET Framework-Objekten in der Befehlszeile und in Skripts erleichtert wird.

Beispiel 1

C:\PS>new-object -typename System.Version -argumentlist "1.2.3.4" 

Major  Minor  Build  Revision
-----  -----  -----  --------
1      2      3      4

Beschreibung
-----------
Mit diesem Befehl wird ein System.Version-Objekt erstellt, und als Konstruktor wird die Zeichenfolge "1.2.3.4" verwendet.





Beispiel 2

C:\PS>$ie = new-object -comobject InternetExplorer.Application -property @{navigate2="www.microsoft.com"; visible = $true}

Beschreibung
-----------
Mit diesem Befehl wird eine Instanz des COM-Objekts erstellt, das die Anwendung Internet Explorer darstellt. Mithilfe des Property-Parameters wird die Navigate2-Methode aufgerufen und die Visible-Eigenschaft des Objekts auf $true festgelegt, um die Anwendung sichtbar zu machen.

Dieser Befehl entspricht dem folgenden Befehl:

$ie = new-object -comobject InternetExplorer.Application 
$ie.navigate2 ("www.microsoft.com")
$ie.visible = $true





Beispiel 3

C:\PS>$a=new-object -comobject Word.Application -strict -property @{visible=$true}

New-Object : The object written to the pipeline is an instance of the type
"Microsoft.Office.Interop.Word.ApplicationClass" from the component's prima
ry interop assembly. If this type exposes different members than the IDispa
tch members, scripts written to work with this object might not work if the
 primary interop assembly is not installed.
At line:1 char:14
+ $a=New-Object  <<<< -COM Word.Application -Strict; $a.visible=$true

Beschreibung
-----------
Mit diesem Befehl wird veranschaulicht, dass das Cmdlet "New-Object" aufgrund der Angabe des Strict-Parameters einen Fehler ohne Abbruch generiert, wenn das erstellte COM-Objekt eine Interop-Assembly verwendet.





Beispiel 4

C:\PS>$objshell = new-object -comobject "Shell.Application"

C:\PS> $objshell | get-member

C:\PS> $objshell.ToggleDesktop()

Beschreibung
-----------
In dem Befehl wird mit dem ComObject-Parameter ein COM-Objekt mit der ProgID "Shell.Application" erstellt. Das resultierende Objekt wird in der Variablen "$objShell" gespeichert.

Im zweiten Befehl wird die Variable "$objShell" über die Pipeline an das Cmdlet "Get-Member" übergeben, das die Eigenschaften und Methoden des COM-Objekts anzeigt. 

Im dritten Befehl wird die ToggleDesktop-Methode des Objekts aufgerufen, um die geöffneten Fenster auf dem Desktop zu minimieren.





Siehe auch

Konzepte

Compare-Object
Select-Object
Sort-Object
ForEach-Object
Group-Object
Measure-Object
Tee-Object
Where-Object