Powershell: Es kann kein übereinstimmender Parameter gefunden werden


9

Ich bin neu in der Powershell-Welt. Unten ist mein erstes Skript

$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

Wenn ich dieses Skript in PowershellISE ausführe, wird der folgende Fehler angezeigt.

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

Leider scheint es für mich, dass "Ein Parameter kann nicht gefunden werden ..." ein äußerst häufiger und mehrdeutiger Fehler ist, der besagt, dass es ein Problem gibt, aber niemals wo. Ich habe mich gefragt, ob jemand sagen kann, warum dieser Fehler auftritt. Oh, und ich bin unter Windows 7 und meine PS-Version ist

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

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

Jede Hilfe hierzu wird sehr geschätzt.

Antworten:


11

Neues Objekt: Es wurde kein Parameter gefunden, der dem Parameternamen 'TypeNamePSObject' entspricht.

Es ist überhaupt nicht mehrdeutig, der Fehler zeigt an, dass –TypeNamePSObjectes sich nicht um einen bekannten Parameter des New-ObjectCmdlets handelt.

$object = New-Object –TypeNamePSObject

Sollte stattdessen sein:

$object = New-Object –TypeName PSObject

Beachten Sie den Abstand zwischen Parameter -TypeNameund Wert PSObject.

Sie können die Tab-Vervollständigung verwenden, um Parameter zu ermitteln. In der Konsole den Namen eines Cmdlets geben, einen Raum, -und dann , Tabum durch die bekannten Parameter. Shift+ Tabkehrt die Reihenfolge um.


2
Den gleichen Fehler gemacht .. nur weil dieses MS-Dokument den gleichen Fehler hat: technet.microsoft.com/en-us/magazine/hh750381.aspx
— Flores

0

Ich möchte nur hinzufügen: es sollte sein: –MemberType NoteProperty(Leerzeichen dazwischen).

Andernfalls wird folgende Fehlermeldung angezeigt: Add-Member : A parameter cannot be found that matches parameter name 'MemberTypeNoteProperty'

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.