如下说明是翻译
PowerShell
中
: help New-Object
产生的帮助信息
.
译者
: Edengundam(
马涛
)
New-Object
大纲
创建一个
.Net
或
COM
对象的实例
.
语法
New-Object [-typeName] <string> [[-argumentList] <Object[]>] [<CommonParameters>]
New-Object [-comObject] <string> [-strict] [<CommonParameters>]
详细描述
创建一个
.Net
或
COM
对象的实例
.
你指定
.Net
类的类型或一个
COM
对象的
Programmatic Identifier(ProgID).
默认情况下
,
你键入
.Net
的完全限定名
, cmdlet
返回该类实例的一个引用
.
要创建一个
COM
对象的实例
,
使用
ComObject
参数并将对象的
ProgID
作为参数值
.
参数
-typeName <string>
指定
.Net
类的完全限定名
.
你不能同时指定
TypeName
参数和
ComObject
参数
.
强制参数
?
|
true
|
参数位置
?
|
1
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-argumentList <Object[]>
为
.Net
类的构造器指定参数列表
.
使用逗号
(,)
隔离列表中的元素
.
强制参数
?
|
false
|
参数位置
?
|
2
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-comObject <string>
COM
对象的
Programmatic Identifier (ProgID).
强制参数
?
|
true
|
参数位置
?
|
1
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-strict <SwitchParameter>
指定如果你试图创建的
COM
对象使用了互操作程序集
,
应该给出错误
.
这使得您能够区分实际的
COM
对象和
COM
可调用包装的
.Net
对象
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
false
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
<
公共参数
>
此命令支持公共参数
: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable.
更多信息
,
输入
, "get-help about_commonparameters".
返回类型
Object
注意
New-Object
提供了
VBScript
中最频繁使用的
CreateObject
函数的功能
.
在
VBScript
中类似语句
Set objShell = CreateObject("Shell.Application")
可以被转化为
Windows PowerShell
中的
$objShell = new-object -comobject "Shell.Application".
New-Object
允许您在命令行和脚本中更容易的使用
.Net
对象
,
从而扩展了
Windows Script Host
环境的可用性
.
更多信息
,
输入
"Get-Help New-Object -detailed".
需要技术信息
,
输入
"Get-Help New-Object -full".
如果需要为该命令提供多个参数
,
请使用逗号进行分隔
.
例如
, "<parameter-name> <value1>, <value2>".
例
1
C:/PS>$ver = new-object -typename System.Version -argumentlist "1.2.3.4"
$ver | get-member
此命令创建了一个类型为
System.Version
的
.Net
对象
,
使用字符串
"1.2.3.4"
作为构造方法的参数
.
它将该对象的引用保存在
$ver
变量中
,
并将其通过管道发送给
Get-Member cmdlet
来显示该引用对象的属性和方法
.
例
2
C:/PS>$ie = new-object -comobject InternetExplorer.Application
$ie.navigate2("www.microsoft.com")
$ie.visible = $true
此命令创建一个
COM
对象的实例用来表示
Internet Explorer
应用程序
.
它是用对象来浏览网站
,
接下来设置可见性属性为
$true
使得应用程序可见
.
例
3
C:/PS>$a=new-object -comobject Word.Application -strict
$a.visible=$true
此命令展示了指定
Strict
参数
,
当创建
COM
对象使用了互操作程序集
,
将会引起
new-object
生成非终止错误
.
New-Object :
被输入到管道中的对象是来自主要互操作程序集中的组件
"Microsoft.Office.Interop.Word.ApplicationClass"
类型的实例
.
如果这个类型提供了与
Idispatch
成员不同的成员
,
主要互操作程序集没有安装
,
此对象进行交互的脚本可能不能工作
.
At line:1 char:14
+ $a=New-Object <<<< -COM Word.Application -Strict; $a.visible=$true
例
4
C:/PS>$objshell = new-object -comobject "Shell.Application"
$objshell | get-member
$objshell.ToggleDesktop()
命令使用
ComObject
参数创建
ProgID
为
"Shell.Application"
的
COM
对象
.
他将引用到对象的结果存储在
$objShell
变量中
,
并将此变量通过管道发送给
Get-Member
cmdlet. Get-Member cmdlet
显示
COM
对象的属性和方法
.
最后一行
,
对象的
ToggleDesktop
方法被调用
.
他将最小化所有在你的桌面上打开的窗口
.
相关链接
Compare-Object
Select-Object
Sort-Object
ForEach-Object
Group-Object
Measure-Object
Tee-Object
Where-Object