it-swarm.com.de

Powershell: Es kann kein übereinstimmender Parameter gefunden werden

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 so, als ob "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 auf 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.

9
Black Dynamite

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

Es ist überhaupt nicht mehrdeutig, der Fehler zeigt an, dass –TypeNamePSObject Kein bekannter Parameter des Cmdlets New-Object Ist.

$object = New-Object –TypeNamePSObject

Sollte stattdessen sein:

$object = New-Object –TypeName PSObject

Beachten Sie das Leerzeichen, das den Parameter -TypeName Und den Wert PSObject begrenzt.

Sie können die Tab-Vervollständigung verwenden, um Parameter zu ermitteln. Geben Sie in der Konsole den Namen eines Cmdlets ein, ein Leerzeichen, -, dann Tab die bekannten Parameter durchlaufen. Shift + Tab wird die Reihenfolge umkehren.

11
jscott

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'

0
element_j