Powershell Get-SCVirtualDiskDrive生成公共语言规范(CLR)错误

时间:2015-10-06 13:38:42

标签: .net powershell virtual-machine clr virtualization

从VirtualMachineManager模块运行Get-SCVirtualDiskDrive命令时没有特别特别的方式。

Get-SCVirtualDiskDrive -VMMServer $VMMServer -VM $VMName

我收到了特定语言(CLS)错误

format-default:字段或属性:" Lun"对于类型:" Microsoft.SystemCenter.VirtualMachineManager.VirtualDiskDrive"不同之处仅在于外地的字母外壳 或财产:" LUN"。该类型必须符合公共语言规范(CLS)。     + CategoryInfo:NotSpecified:(:) [format-default],ExtendedTypeSystemException     + FullyQualifiedErrorId:NotACLSComplaintProperty,Microsoft.PowerShell.Commands.FormatDefaultCommand

我很难通过我在网上找到的关于.NET和PowerShell的一些技巧来尝试使用这个命令

这行代码工作

$method1 = [Microsoft.SystemCenter.VirtualMachineManager.VirtualDiskDrive].GetMethod("get_LUN")

我真的希望这行代码返回一些东西,但不会,它什么都不返回......

$method2 = [Microsoft.SystemCenter.VirtualMachineManager.VirtualDiskDrive].GetMethod("get_Lun")

除了让这一行工作之外,该脚本的目的是扩展虚拟机主VHD。我真的希望有人可以在这里提供帮助,这不是我第一次遇到问题,但这一次,这是不可避免的。

1 个答案:

答案 0 :(得分:0)

问题是因为我正在运行Powershell版本4,而virtualmachinemanager模块只能兼容版本2.

留下两个选项

  • 卸载Window Management Framework以将Powershell降级为版本2
  • 使用Start-Process以Powershell版本2
  • 运行脚本

Start-Process -File PowerShell.exe -Argument“-Version 2 -noprofile -noexit -file test.ps1 $ params”

不理想,我希望有人可以改进这个答案