Powershell:找不到匹配的参数

我是Powershell世界的新手。 下面是我的第一个脚本

$sServer = "Fully.Qualified.Computer.Name" $os = Get-WmiObject -class Win32_OperatingSystem -computername $sServer $object = New-Object –TypeNamePSObject $object | Add-Member –MemberTypeNoteProperty –Name OSBuild –Value $os.BuildNumber $object | Add-Member –MemberTypeNoteProperty –Name OSVersion –Value $os.Version $object | Add-Member –MemberTypeNoteProperty –Name BIOSSerial –Value $bios.SerialNumber Write-Output $object 

当我在PowershellISE中运行此脚本时,出现以下错误。

 New-Object : A parameter cannot be found that matches parameter name 'TypeNamePSObject'. At C:\Users\someone\Desktop\SchwansScript.ps1:27 char:22 + $object = New-Object –TypeNamePSObject + ~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [New-Object],ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.NewObjectCommand 

不幸的是,对于我来说,似乎是“一个参数找不到…”是一个非常普遍和模糊的错误,说有一个问题,但从来没有在哪里。 我想知道是否有人可以告诉为什么这个错误发生。 哦,我在Windows 7上,我的PS版本是

 PS C:\Users\someone> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 4 0 -1 -1 

任何帮助,这是非常感谢。

New-Object:找不到与参数名称“TypeNamePSObject”匹配的参数

它根本–TypeNamePSObject ,错误表明–TypeNamePSObject不是New-Object cmdlet的已知参数。

 $object = New-Object –TypeNamePSObject 

应该改为:

 $object = New-Object –TypeName PSObject 

请注意分隔参数-TypeName和值PSObject的空间。

您可以使用制表符完成来发现参数。 在控制台中,inputcmdlet的名称,空格,然后按Tab键循环显示已知参数。 Shift + Tab会颠倒顺序。

只是想补充一点:它应该是: –MemberType NoteProperty (中间的空格)。

否则,会出现此错误: Add-Member : A parameter cannot be found that matches parameter name 'MemberTypeNoteProperty'