【发布时间】:2018-08-27 01:05:03
【问题描述】:
例如我想使用这个类Microsoft.HyperV.PowerShell.HardDiskDrive
我尝试用这种方式初始化它:
$obbb = [Microsoft.HyperV.PowerShell.HardDiskDrive]@{
Path = 'D:\\TEST\\test\\Virtual Hard Disks\\test.vhdx'
DiskNumber = $null
MaximumIOPS = '1000'
MinimumIOPS = '0'
QoSPolicyID = '00000000-0000-0000-0000-000000000000'
SupportPersistentReservations = $false
WriteHardeningMethod = '0'
ControllerLocation = '0'
ControllerNumber = '0'
ControllerType = '0'
Name = 'Hard Drive on IDE controller number 0 at location 0'
PoolName = 'Primordial'
Id = 'Microsoft:480244F9-44D4-4BFC-B34B-EC3C425D52F7\\83F8638B-8DCA-4152-9EDA-2CA8B33039B4\\0\\0\\D'
VMId = '480244f9-44d4-4bfc-b34b-ec3c425d52f7'
VMName = 'test'
VMSnapshotId = '00000000-0000-0000-0000-000000000000'
VMSnapshotName = ''
CimSession = $null
ComputerName = 'NodeTest'
IsDeleted = $false
VMCheckpointId = '00000000-0000-0000-0000-000000000000'
VMCheckpointName = ''
}
但是得到了这个错误:
Cannot convert the "System.Collections.Hashtable" value of type "System.Collections.Hashtable" to type "Microsoft.HyperV.PowerShell.HardDiskDrive".
At line:1 char:1
+ $obbb = [Microsoft.HyperV.PowerShell.HardDiskDrive]@{
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [], RuntimeException
+ FullyQualifiedErrorId : ConvertToFinalInvalidCastException
我也尝试了不同的新对象变体https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/new-object?view=powershell-6
但出现错误。
有没有可能?
谢谢。
【问题讨论】:
-
仅在有限的情况下,但一般不会 - 请参阅this open issue on the PowerShell GitHub asking to make it possible
-
Microsoft.HyperV.PowerShell.HardDiskDrive类型没有任何公开可用的构造函数,因此您无法创建它的类型。
标签: .net powershell constructor initialization hashtable