所以我有一个奇怪的问题。当我做这样的命令时:
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
它运行正常,但是如果我创建一个脚本,我会得到一个TON错误,例如在一个名为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],VirtualizationInvalidArgumentExcept ion + 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”屏幕。有没有办法自动化这个过程?或者不是真的(比如让它点击下一步,选择硬盘,安装等......
答案 0 :(得分:2)
为了确保,提示(例如'PS C:\ Users \ mrsmith \ Desktop>')不是脚本的一部分,对吧?如果有,请将其删除。
如图所示,它是脚本的一部分,因为PS
是Get-Process
的别名,它会尝试将'C:\ Users \ mrsmith \ Desktop'作为进程名称传递。< / p>