Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell:System.Object还是PSObject?_Powershell - Fatal编程技术网

PowerShell:System.Object还是PSObject?

PowerShell:System.Object还是PSObject?,powershell,Powershell,我最近开始在一些PowerShell脚本中使用自定义对象。在网上环顾四周时,我注意到有两种方法可以创建这些对象 $Obj1 = New-Object System.Object $Obj2 = New-Object PSObject 它们都具有我所需要的功能,例如为要保存的必要信息设置自定义属性 我的问题是,是否有必要使用其中一个而不是另一个?我在Technet上发现了一篇文章,它似乎朝着正确的方向给出了这个问题的答案,但我还没来得及想清楚它。链接如下 谢谢 我在下面链接的文章中找到了我的答

我最近开始在一些PowerShell脚本中使用自定义对象。在网上环顾四周时,我注意到有两种方法可以创建这些对象

$Obj1 = New-Object System.Object
$Obj2 = New-Object PSObject
它们都具有我所需要的功能,例如为要保存的必要信息设置自定义属性

我的问题是,是否有必要使用其中一个而不是另一个?我在Technet上发现了一篇文章,它似乎朝着正确的方向给出了这个问题的答案,但我还没来得及想清楚它。链接如下


谢谢

我在下面链接的文章中找到了我的答案


作为旁注,我想要的答案是,PSObject似乎不限于System.Object,而是与.NET函数一起使用。System.Object不会将自定义属性传递给.NET函数,但PSObject将使用现代(PS3+)语法
$obj=[PSCustomObject]@{A=1;b=2}
PSObject是从System.Object继承的。默认情况下,它将有更多的成员。我通常只看到参数定义中使用的
System.Object
,其中您希望表示“此参数接受任意类型的对象”,因为
System.Object
是几乎所有对象的公共基类。我想不出使用
newobject-Type Object
而不是
newobject-Type PSObject
(这实际上创建了
PSCustomObject
对象)的原因用于构造自定义对象。@AnsgarWiechers实际上创建了
PSCustomObject
对象
PSCustomObject
是它仅有的一个单例类<代码>新对象不要创建它们。谢谢大家的输入,我找到了另一篇文章,使这个主题更加清晰!