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

Любая справка на этом значительно ценится.

9
задан 11 May 2015 в 17:48
2 ответа

New-Object: не удается найти параметр, который соответствует имени параметра 'TypeNamePSObject '

Это совсем недвусмысленно, ошибка указывает, что –TypeNamePSObject не является известным параметром командлета New-Object .

$object = New-Object –TypeNamePSObject

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

$object = New-Object –TypeName PSObject

Примечание пробел, ограничивающий параметр -TypeName и значение PSObject .

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

11
ответ дан 2 December 2019 в 22:30

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

Иначе вы получите эту ошибку: Add-Member : Невозможно найти параметр, совпадающий с именем параметра 'MemberTypeNoteProperty'

0
ответ дан 2 December 2019 в 22:30

Теги

Похожие вопросы