Создает экземпляр объекта Microsoft .NET Framework или COM object.
Синтаксис
New-Object -ComObject <string> [-Strict] [-Property <hashtable>] [<CommonParameters>] New-Object [-TypeName] <string> [[-ArgumentList] <Object[]>] [-Property <hashtable>] [<CommonParameters>]
Описание
Командлет New-Object создает экземпляр объекта .NET Framework или COM-объекта.
Можно указать или тип класса .NET Framework, или программный идентификатор (ProgID) COM-объекта. По умолчанию вводится полное имя класса .NET Framework; а командлет возвращает ссылку на экземпляр этого класса. Чтобы создать экземпляр COM-объекта, укажите параметр ComObject и программный идентификатор объекта в качестве значения этого параметра.
Параметры
-ArgumentList <Object[]>
Задает список аргументов, которые передаются конструктору класса .NET Framework. Элементы списка отделяются друг от друга с помощью запятых (,). Псевдоним ArgumentList — Args.
Обязательно? |
false |
Позиция? |
2 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-ComObject <string>
Задает программный идентификатор (ProgID) COM-объекта.
Обязательно? |
true |
Позиция? |
named |
Значение по умолчанию |
нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Property <hashtable>
Задает значения свойств и вызывает методы нового объекта.
Введите хэш-таблицу, ключами которой являются имена свойств или методов, а значениями — значения свойств или аргументы методов. Командлет New-Object создает объект и задает значения всех свойств и вызывает все методы в том порядке, в котором они заданы в хэш-таблице.
Если новый объект унаследован от класса PSObject и задается свойство, отсутствующее в объекте, командлет New-Object добавляет указанное свойство к объекту в виде NoteProperty. Если объект не является объектом PSObject, команда создает непрерывающую ошибку.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Strict
Устанавливает, что если создаваемый COM-объект использует сборку взаимодействия, должна возникать ошибка. Это позволяет отличать реальные COM-объекты от объектов .NET Framework с оболочками, вызываемыми из COM.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-TypeName <string>
Задает полное имя класса .NET Framework. Невозможно одновременно указать параметр TypeName и параметр ComObject.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
Нет Передать входные данные этому командлету по конвейеру невозможно. |
Выходные данные |
Object Командлет New-Object возвращает создаваемый объект. |
Примечания
В командлете New-Object реализованы наиболее востребованные возможности функции CreateObject языка VBScript. Например, команда Set objShell = CreateObject("Shell.Application") на VBScript в Windows PowerShell может быть записана как $objShell = new-object -comobject "Shell.Application".
Командлет New-Object расширяет функциональность среды сервера скриптов Windows, позволяя легко обращаться к объектам .NET Framework из командной строки и использовать их в скриптах.
Пример 1
C:\PS>new-object -typename System.Version -argumentlist "1.2.3.4" Major Minor Build Revision ----- ----- ----- -------- 1 2 3 4 Описание ----------- Эта команда создает объект System.Version, используя в качестве конструктора строку "1.2.3.4".
Пример 2
C:\PS>$ie = new-object -comobject InternetExplorer.Application -property @{navigate2="www.microsoft.com"; visible = $true} Описание ----------- Эта команда создает экземпляр COM-объекта, представляющего приложение Internet Explorer. Она использует параметр Property для вызова метода Navigate2 и задания значения $true для свойства Visible объекта, чтобы приложение стало видимым для пользователя. Эта команда эквивалентна следующей команде: $ie = new-object -comobject InternetExplorer.Application $ie.navigate2("www.microsoft.com") $ie.visible = $true
Пример 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 Описание ----------- Эта команда демонстрирует, что при выполнении командлета New-Object с параметром Strict возникает непрерывающая ошибка, когда созданный COM-объект обращается к сборке взаимодействия.
Пример 4
C:\PS>$objshell = new-object -comobject "Shell.Application" C:\PS> $objshell | get-member C:\PS> $objshell.ToggleDesktop() Описание ----------- Эта команда с помощью параметра ComObject создает COM-объект с программным идентификатором "Shell.Application". Полученный объект культуры сохраняется в переменной $objShell. Вторая команда по конвейеру передает переменную $objShell командлету Get-Member, который отображает свойства и методы COM-объекта. Третья команда вызывает метод ToggleDesktop объекта, чтобы свернуть открытые окна на рабочем столе.
См. также