Crea un'istanza di un oggetto Microsoft .NET Framework o COM.

Sintassi

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

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

Descrizione

Il cmdlet New-Object crea un'istanza di un oggetto .NET Framework o COM.

È possibile specificare il tipo di una classe .NET Framework o un ProgID di un oggetto COM. Per impostazione predefinita, il nome completo di una classe .NET Framework viene digitato dall'utente, mentre il cmdlet restituisce un riferimento a un'istanza di tale classe. Per creare un'istanza di un oggetto COM, utilizzare il parametro ComObject e specificare come valore il ProgID dell'oggetto.

Parametri

-ArgumentList <Object[]>

Specifica un elenco di argomenti da passare al costruttore della classe .NET Framework. Utilizzare le virgole (,) per separare gli elementi dell'elenco. L'alias per ArgumentList è Args.

Obbligatorio?

false

Posizione?

2

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-ComObject <string>

Specifica il ProgID (Programmatic Identifier) dell'oggetto COM.

Obbligatorio?

true

Posizione?

named

Valore predefinito

nessuno

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Property <hashtable>

Imposta i valori delle proprietà e richiama i metodi del nuovo oggetto.

Immettere una tabella hash in cui le chiavi sono i nomi di proprietà o metodi e i valori sono valori di proprietà o argomenti di metodo. New-Object crea l'oggetto, quindi imposta ogni valore di proprietà e richiama ogni metodo nell'ordine in cui si trova nella tabella hash.

Se il nuovo oggetto è derivato dalla classe PSObject e si specifica una proprietà che non esiste nell'oggetto, New-Object aggiunge la proprietà specificata all'oggetto come NoteProperty. Se l'oggetto non è un oggetto PSObject, il comando genera un errore non fatale.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Strict

Specifica che è necessario generare un errore se nell'oggetto COM che si tenta di creare viene utilizzato un assembly di interoperabilità. In tal modo è possibile distinguere gli oggetti COM effettivi dagli oggetti .NET Framework con COM Callable Wrapper.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-TypeName <string>

Specifica il nome completo della classe .NET Framework. Non è possibile specificare sia il parametro TypeName che il parametro ComObject.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

Nessuno

Non è possibile reindirizzare l'input a questo cmdlet.

Output

Object

New-Object restituisce l'oggetto creato.

Note

New-Object fornisce la funzionalità più comunemente utilizzata della funzione VBScript CreateObject. L'istruzione Set objShell = CreateObject("Shell.Application") di VBScript può infatti essere convertita in $objShell = new-object -comobject "Shell.Application" in Windows PowerShell.

New-Object può essere espanso sulla base delle funzionalità disponibili nell'ambiente Windows Script Host e consente di gestire facilmente oggetti .NET Framework dalla riga di comando e all'interno di script.

Esempio 1

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

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

Descrizione
-----------
Questo comando crea un oggetto System.Version, utilizzando la stringa "1.2.3.4" come costruttore.






Esempio 2

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

Descrizione
-----------
Tramite questo comando verrà creata un'istanza dell'oggetto COM che rappresenta l'applicazione Internet Explorer. Il parametro Property verrà utilizzato per chiamare il metodo Navigate2 e per impostare la proprietà Visible dell'oggetto su $true per rendere visibile l'applicazione.

Questo comando equivale al seguente:

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






Esempio 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

Descrizione
-----------
Con questo comando viene illustrato che se si specifica il parametro Strict, il cmdlet New-Object genera un errore non fatale quando l'oggetto COM creato utilizza un assembly di interoperabilità.






Esempio 4

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

C:\PS> $objshell | get-member

C:\PS> $objshell.ToggleDesktop()

Descrizione
-----------
Nel comando viene utilizzato il parametro ComObject per creare un oggetto COM il cui ProgID è "Shell.Application". Consente di archiviare l'oggetto risultante nella variabile $objShell.

Con il secondo comando viene reindirizzata la variabile $objShell al cmdlet Get-Member che consente di visualizzare le proprietà e i metodi dell'oggetto COM. 

Con il terzo comando viene chiamato il metodo ToggleDesktop dell'oggetto per ridurre le finestre aperte sul desktop.






Vedere anche




Argomenti della Guida