Назад | Перейти на главную страницу

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 не является известным параметром New-Object командлет.

$object = New-Object –TypeNamePSObject

Вместо этого должно быть:

$object = New-Object –TypeName PSObject

Обратите внимание на пробел, ограничивающий параметр -TypeName и ценность PSObject.

Вы можете использовать завершение табуляции, чтобы узнать параметры. В консоли введите имя командлета, пробел, -, затем Вкладка для просмотра известных параметров. сдвиг + Вкладка изменит порядок.

Хотел бы просто добавить: должно быть: –MemberType NoteProperty (пробел между ними).

В противном случае вы получите такую ​​ошибку: Add-Member : A parameter cannot be found that matches parameter name 'MemberTypeNoteProperty'