Powershell : 일치하는 매개 변수를 찾을 수 없습니다


9

저는 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

이에 대한 도움을 주시면 감사하겠습니다.

답변:


11

New-Object : 매개 변수 이름 'TypeNamePSObject'와 일치하는 매개 변수를 찾을 수 없습니다

전혀 모호하지는 않습니다. 오류는 cmdlet –TypeNamePSObject의 알려진 매개 변수가 아님을 나타냅니다 New-Object.

$object = New-Object TypeNamePSObject

대신해야합니다 :

$object = New-Object TypeName PSObject

매개 변수 -TypeName와 값을 구분하는 공백에 유의하십시오 PSObject.

탭 완성을 사용하여 매개 변수를 발견 할 수 있습니다. 콘솔에서 cmdlet 이름, 공백, -을 입력 한 다음 Tab알려진 매개 변수를 순환합니다. Shift+ Tab는 순서를 반대로합니다.


2
이 MS 문서에 동일한 오류가 있기 때문에 동일한 오류가 발생했습니다. technet.microsoft.com/en-us/magazine/hh750381.aspx
Flores

0

추가하고 싶을 때 : –MemberType NoteProperty(공백 사이)

그렇지 않으면이 오류가 발생합니다. Add-Member : A parameter cannot be found that matches parameter name 'MemberTypeNoteProperty'

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.