1

所以我有一个奇怪的问题。当我执行这样的命令时:

New-VM -Name "MattTest" -MemoryStartupBytes 2GB -BootDevice CD -SwitchName Lab -path c:\VMdocs -NewVHDSizeBytes 40GB –NewVHDPath c:\base.vhdx

Set-VMDvdDrive -VMName MattTest -Path C:\ISOFiles\Windows2008.

Start-VM -Name MattTest

它工作正常,但是如果我制作一个脚本,我会收到大量错误,例如在名为 PS.ps1 并通过 Powershell 运行的脚本中完全相同的东西,我得到:

New-VM : 参数无效。根据给定的标准无法找到任何开关。在 C:\Users\mrsmith\Desktop\PS.ps1:1 char:1 + New-VM -Name "MattTest" -MemoryStartupBytes 2GB -BootDevice CD -SwitchName Lab - ... + ~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (Lab:String) [New-VM], VirtualizationInvalidArgumentException + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands .NewVMCommand

Set-VMDvdDrive : 参数无效。Hyper-V 无法找到名为 MattTest 的虚拟机。在 C:\Users\mrsmith\Desktop\PS.ps1:3 char:1 + Set-VMDvdDrive -VMName MattTest -Path C:\ISOFiles\Windows2008。+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (MattTest:String) [Set-VMDvdDrive], VirtualizationInvalidArgumentException + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.SetVMDvdDriveCommand

Set-VMDvdDrive : 参数无效。找不到 DVD 驱动器。在 C:\Users\mrsmith\Desktop\PS.ps1:3 char:1 + Set-VMDvdDrive -VMName MattTest -Path C:\ISOFiles\Windows2008。+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Set-VMDvdDrive], VirtualizationInvalidArgumentException + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.SetVMDvdDriveCommand

Start-VM : 参数无效。Hyper-V 无法找到名为 MattTest 的虚拟机。在 C:\Users\mrsmith\Desktop\PS.ps1:5 char:1 + Start-VM -Name MattTest + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (MattTest:String) [Start-VM], VirtualizationInvalidArgumentException + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.StartVMCommand

我不确定是什么原因造成的?是否与模块有关,因为我已经检查过并且 Hyper-V cmdlet 正在运行(考虑到我可以手动输入这些,它们会很好)

还有一个附带问题:这些说明将进入“安装 Windows XXXX”屏幕。有没有办法自动化这个过程?或者不是真的(比如让它点击下一步,选择一个硬盘驱动器,安装等等......

4

1 回答 1

3

只是为了确保提示符(例如'PS C:\Users\mrsmith\Desktop>')不是脚本的一部分,对吧?如果是这样删除它。

看起来,它是脚本的一部分,因为PS它是一个别名Get-Process,它尝试将“C:\Users\mrsmith\Desktop”作为进程名称传递。

于 2013-03-07T13:15:40.550 回答