我是Power
shell世界的新手.下面是我的第一个脚本
$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 : A parameter cannot be found that matches parameter name ‘TypeNamePSObject’
它根本不含糊,错误表明-TypeNamePSObject不是New-Object cmdlet的已知参数.
$object = New-Object –TypeNamePSObject
应该是:
$object = New-Object –TypeName PSObject
请注意区分参数-TypeName和值PSObject的空间.
您可以使用制表符完成来发现参数.在控制台中,键入cmdlet的名称,空格,– 然后选择Tab以循环显示已知参数. Shift选项卡将颠倒顺序.