Crea una instancia de un objeto de Microsoft .NET Framework o COM.

Sintaxis

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

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

Descripción

El cmdlet New-Object crea una instancia de un objeto de .NET Framework o COM.

Puede especificarse el tipo de una clase de .NET Framework o un identificador de programación (ProgID) de un objeto COM. De manera predeterminada, el usuario escribe el nombre completo de una clase de .NET Framework y el cmdlet devuelve una referencia a una instancia de dicha clase. Para crear una instancia de un objeto COM, hay que usar el parámetro ComObject y especificar el ProgID del objeto como su valor.

Parámetros

-ArgumentList <Object[]>

Especifica una lista de argumentos que se van a pasar al constructor de la clase de .NET Framework. Separe los elementos de la lista mediante comas (,). El alias de ArgumentList es Args.

¿Requerido?

false

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-ComObject <string>

Especifica el identificador de programación (ProgID) del objeto COM.

¿Requerido?

true

¿Posición?

named

Valor predeterminado

ninguno

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Property <hashtable>

Establece los valores de propiedad e invoca los métodos del nuevo objeto.

Especifique una tabla hash donde las claves son nombres de propiedades o métodos y los valores son valores de propiedad o argumentos de método. New-Object crea el objeto y establece cada valor de propiedad e invoca cada método en el orden en que aparecen en la tabla hash.

Si el nuevo objeto se deriva de la clase PSObject y se especifica una propiedad que no existe en el objeto, New-Object agrega la propiedad especificada al objeto como NoteProperty. Si el objeto no es un PSObject, el comando generará un error que no es de terminación.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Strict

Establece que debe producirse un error si el objeto COM que se está intentando crear usa un ensamblado de interoperabilidad. Permite distinguir los objetos COM reales de los objetos de .Net Framework con contenedores CCW (COM callable wrapper).

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-TypeName <string>

Especifica el nombre completo de la clase de .NET Framework. No se pueden especificar a la vez los parámetros TypeName y ComObject.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

Ninguno

No se pueden canalizar entradas a este cmdlet.

Salidas

Object

New-Object devuelve el objeto que se ha creado.

Notas

New-Object proporciona la funcionalidad más usada de la función CreateObject de VBScript. Una instrucción como Set objShell = CreateObject("Shell.Application") en VBScript se puede traducir como $objShell = new-object -comobject "Shell.Application" en Windows PowerShell.

New-Object supera la funcionalidad disponible en el entorno de Windows Script Host ya que facilita el uso de objetos de .NET Framework en la línea de comandos y en los scripts.

Ejemplo 1

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

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

Descripción
-----------
Este comando crea un objeto System.Version con la cadena "1.2.3.4" como constructor.






Ejemplo 2

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

Descripción
-----------
Este comando crea una instancia del objeto COM que representa la aplicación Internet Explorer. Usa el parámetro Property para llamar al método Navigate2 y establecer la propiedad Visible del objeto en $true de modo que pueda verse la aplicación.

Este comando equivale a:

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






Ejemplo 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

Descripción
-----------
Este comando pone de manifiesto que al especificar el parámetro Strict, el cmdlet New-Object genera un error que no es de terminación cuando el objeto COM que se ha creado usa un ensamblado de interoperabilidad.






Ejemplo 4

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

C:\PS> $objshell | get-member

C:\PS> $objshell.ToggleDesktop()

Descripción
-----------
El comando usa el parámetro ComObject para crear un objeto COM con el identificador de programación "Shell.Application". Almacena el objeto resultante en la variable $objShell.

El segundo comando canaliza la variable $objShell al cmdlet Get-Member, que muestra las propiedades y los métodos del objeto COM. 

El tercer comando llama al método ToggleDesktop del objeto para minimizar las ventanas abiertas en el escritorio.






Vea también




Tabla de contenido