Windows

Powershell:找不到匹配的參數

  • September 13, 2017

我是 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

非常感謝您對此的任何幫助。

新對象:找不到與參數名稱“TypeNamePSObject”匹配的參數

它一點也不模棱兩可,錯誤表明–TypeNamePSObject它不是New-Objectcmdlet 的已知參數。

$object = New-Object –TypeNamePSObject

應該改為:

$object = New-Object –TypeName PSObject

注意分隔參數-TypeName和值的空格PSObject

您可以使用製表符完成來發現參數。在控制台中,鍵入 cmdlet 的名稱、空格、-,然後Tab循環顯示已知參數。Shift+Tab將顛倒順序。

引用自:https://serverfault.com/questions/691154