Cria uma instância de um objeto Microsoft .NET Framework ou COM.

Sintaxe

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

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

Descrição

O cmdlet New-Object cria uma instância de um objeto .NET Framework ou COM.

Você pode especificar o tipo de uma classe .NET Framework ou um ProgID de um objeto COM. Por padrão, você digita o nome totalmente qualificado de uma classe .NET Framework e o cmdlet retorna uma referência para uma instância dessa classe. Para criar uma instância de um objeto COM, use o parâmetro ComObject e especifique o ProgID do objeto como seu valor.

Parâmetros

-ArgumentList <Object[]>

Especifica uma lista de argumentos a serem passados ao construtor da classe .NET Framework. Separe os elementos na lista usando vírgulas (,). O alias para ArgumentList é Args.

Necessário?

false

Posição?

2

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-ComObject <string>

Especifica o ProgID (identificador de programação) do objeto COM.

Necessário?

true

Posição?

named

Valor padrão

nenhum

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Property <hashtable>

Define os valores de propriedade e invoca métodos do novo objeto.

Insira uma tabela de hash na qual as chaves são os nomes de propriedades ou métodos e os valores são valores de propriedade ou argumentos de método. New-Object cria o objeto e define cada valor de propriedade e invoca cada método na ordem em que eles aparecem na tabela de hash.

Se o novo objeto for derivado da classe PSObject e você especificar uma propriedade que não exista no objeto, New-Object acrescentará a propriedade especificada ao objeto como uma NoteProperty. Se o objeto não for um PSObject, o comando gerará um erro de não-encerramento.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Strict

Especifica se um erro deve ser encaminhado se o objeto COM que você tentar criar usar um assembly interop. Isso permite que você faça a distinção entre objetos COM reais de objetos .NET Framework com callable wrappers de COM.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-TypeName <string>

Especifica o nome totalmente qualificado da classe .NET Framework. Você não pode especificar os parâmetros TypeName e ComObject.

Necessário?

true

Posição?

1

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas

None

Você não pode canalizar a entrada para este cmdlet.

Saídas

Object

New-Object retorna o objeto criado.

Observações

New-Object fornece a funcionalidade mais comumente usada da função VBScript CreateObject. Uma instrução como Set objShell = CreateObject("Shell.Application") no VBScript pode ser convertida em $objShell = new-object -comobject "Shell.Application" no Windows PowerShell.

New-Object é ampliado mediante a funcionalidade disponível no ambiente do Windows Script Host, facilitando o trabalho com objetos .NET Framework a partir da linha de comando e nos scripts.

Exemplo 1

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

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

Descrição
-----------
Esse comando cria um objeto System.Version usando a cadeia de caracteres "1.2.3.4" como o construtor.






Exemplo 2

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

Descrição
-----------
Este comando cria uma instância do objeto COM que representa o aplicativo Internet Explorer. Ele usa o parâmetro Property para chamar o método Navigate2 e definir a propriedade Visible do objeto como $true para tornar o aplicativo visível.

Esse comando é o equivalente do seguinte:

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






Exemplo 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

Descrição
-----------
Esse comando demonstra que a especificação do parâmetro Strict faz com que o cmdlet New-Object gere um erro de não-encerramento quando o objeto COM criado usa um assembly de interoperabilidade.






Exemplo 4

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

C:\PS> $objshell | get-member

C:\PS> $objshell.ToggleDesktop()

Descrição
-----------
O comando usa o parâmetro ComObject para criar um objeto COM com o ProgID "Shell.Application". Ele armazena o objeto de cultura resultante na variável $objShell.

O segundo comando envia a variável $objShell para o cmdlet Get-Member, que exibe as propriedades e métodos do objeto COM. 

O terceiro comando chama o método ToggleDesktop do objeto para minimizar as janelas abertas em sua área de trabalho.






See Also




Sumário