Powershell: impossibile trovare un parametro corrispondente


9

Sono nuovo nel mondo Powershell. Di seguito è la mia prima sceneggiatura

$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

Quando eseguo questo script in PowershellISE, ottengo il seguente errore.

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

Sfortunatamente per me, sembra che "Un parametro non possa essere trovato ..." è un errore estremamente comune e ambiguo, dicendo che c'è un problema, ma mai dove. Mi chiedevo se qualcuno potesse dire perché si sta verificando questo errore. Oh, e sono su Windows 7 e la mia versione PS è

PS C:\Users\someone> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1

Qualsiasi aiuto su questo è molto apprezzato.

Risposte:


11

New-Object: impossibile trovare un parametro che corrisponde al nome del parametro 'TypeNamePSObject'

Non è affatto ambiguo, l'errore indica che –TypeNamePSObjectnon è un parametro noto del New-Objectcmdlet.

$object = New-Object TypeNamePSObject

Dovrebbe essere invece:

$object = New-Object TypeName PSObject

Nota lo spazio che delimita il parametro -TypeNamee il valore PSObject.

È possibile utilizzare il completamento della scheda per scoprire i parametri. Nella console digitare un nome del cmdlet, uno spazio -, quindi Tabscorrere i parametri noti. Shift+ Tabinvertirà l'ordine.


2
Ha fatto lo stesso errore .. solo perché questo documento MS ha lo stesso errore: technet.microsoft.com/en-us/magazine/hh750381.aspx
Flores,

0

Vorrei solo aggiungere: dovrebbe essere: –MemberType NoteProperty(spazio in mezzo).

Altrimenti, ricevi questo errore: Add-Member : A parameter cannot be found that matches parameter name 'MemberTypeNoteProperty'

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.