使用PowerCLI脚本从ISO镜像启动

3
我该如何让以下脚本运行?目前我能在我的服务器上创建一个新的虚拟机。我希望能够加载Windows ISO镜像并在虚拟机中进行无人值守安装。我应该如何编辑脚本以使其生效?
# Virtual Center Details
$server_address = "xxxxx"
$username = "xxxxx"
$password = "xxxxx"
$iso = "WINXP_X86_SP3_CD.ISO"

Get-VIServer -Server $server_address -Protocol https -User $username -Password $password

foreach ($vmm in $array)
{
    $vmm = "VirtualMachine"

    New-VM -name $vmm -DiskMB 20000 -memoryMB 2000
    Get-VM $vmm | Get-CDDrive | Set-CDDrive -IsoPath $iso -StartConnected $true -Confirm:$false
    $value = "5000"
    $vm = Get-VM $vmname | Get-View
    $vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
    $vmConfigSpec.BootOptions = New-Object VMware.Vim.VirtualMachineBootOptions
    $vmConfigSpec.BootOptions.BootDelay = $value
    $vm.ReconfigVM_Task($vmConfigSpec)

    Start-vm -vm $vmname
}

嗯,$array 是从哪里来的?为什么要使用 Get-VIServer?你是不是想用 Connect-VIServer?你的脚本遇到了哪些问题? - Emiliano Poggi
@empo 是的,由于PowerCLI的版本问题,它是get-viserver。命令有轻微变化。其余部分我只是复制并粘贴了它。顺便说一下,我的问题与ISO PATH镜像有关。当我在使用PowerCLI命令提示符运行脚本时,出现错误“无效的数据存储格式”。 - user448402
1个回答

3

我遇到的问题是ISO PATH(ISO路径)镜像的问题。我收到了“无效的数据存储格式”错误。

您正在使用IsoPath参数指定isopath,这是指向ISO的数据存储路径,而不仅仅是ISO名称。从您的代码中,您没有指示任何数据存储。

数据存储路径的语法为:

"[yourdatastore] IsoFolder\$iso"

从PowerCLI参考文献在线获取的示例:

$cd = New-CDDrive -VM $vm -ISOPath "[sof-20666-esx:storage1] ISO\testISO.iso"
Set-CDDrive -CD $cd -StartConnected -Connected

@empo 你如何检查 -ISOPath "[sof-20666-esx:storage1] 我正在使用哪个数据存储?我当前使用的是vSphere Client版本4.1.0和VMware ESXI版本4.1.0。我是使用这个连接到我的服务器的。 - user448402
@empo 谢谢,它成功读取了 CD-ROM 和 ISO 镜像。但是如何使用 PowerCLI 脚本来激活设备状态(连接和开机自动连接),然后才能安装操作系统呢? - user448402
我稍微修改了示例,以包括您要求的设备状态激活。希望能有所帮助。 - Emiliano Poggi
@empo,你真的帮了我很多。非常感谢。但是我能在这里问你另一个问题吗?我已经发布了这个问题,但我觉得你似乎是指导这个问题的正确人选。 - user448402
@ empo "安装程序未在您的计算机中找到任何硬盘驱动器。请确保所有硬盘驱动器已经通电并正确连接到您的计算机,并且任何与磁盘相关的硬件配置都是正确的。这可能需要运行制造商提供的诊断或设置程序。安装程序无法继续。要退出安装程序,请按F3键" - user448402
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接