Configurando um CD de inicialização da VM via PowerCLI

6
Eu tenho uma suspeita de que isso pode ser um bug, mas estou definitivamente disposto a considerar a possibilidade de estar fazendo coisas erradas.

Eu tenho uma máquina virtual VMware em $ vm e estou tentando atribuir um CD de inicialização para ela. $ vm está desligado.

O método documentado parece bastante simples:

Set-CDDrive -CD (Get-CDDrive -vm $vm) -IsoPath "[datastorename] \whatever.iso" -StartConnected 1

Agora, quando inicio a VM, ela tenta imediatamente usar o PXEboot. Desligo a máquina e, no cliente vSphere, edito as propriedades da VM, vou para "CD / DVD drive 1" e verifico se "Device Status" está marcado ao lado de "Connect at power on".

Aqui está a coisa louca. Quando desmarco essa caixa, marque-a novamente e inicie a VM, que é inicializada pela ISO.

Eu fiz isso de novo e de novo, com o console aberto, com ele fechado, e toda vez, posso definir o sinalizador StartConnected na CLI, e a GUI reflete a configuração, mas somente depois de marcar a caixa de seleção manualmente na verdade inicializa a partir do ISO.

Existe uma etapa que estou deixando de realizar no PowerCLI para obter essa configuração como "take"?

    
por Matt Simmons 31.10.2012 / 16:52

2 respostas

0

A partir da referência on-line do PowerCLI, vejo o seguinte exemplo (substitua o valor após -ISOPath pelo seu datastore e nome / caminho para o arquivo .iso como "[yourdatastore] IsoFolder\$iso" ):

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

A primeira barra invertida no ISOPath pode muito bem ser o problema. Eu estou fazendo exatamente a mesma coisa em nossos scripts de provisionamento, parece assim:

Get-CDDrive $VM | Set-CDDrive -IsoPath "[DATASTORE] ISO\BOOT.ISO" -StartConnected:$true -Confirm:$false

Além disso, se você está fornecendo valores booleanos para argumentos que aceitam um booleano (como StartConnected ), tente criar o hábito de usar um ponto-e-vírgula como o exemplo acima. Se acontecer de você ter um Cmdlet de função que aceita mais de um argumento sem nome, seu 1 pode ser interpretado incorretamente como um novo argumento na chamada de função, em vez do valor do argumento pretendido.

Portanto, não use -StartConnected 1 , mas use -StartConnected:1 ou -StartConnected:$true .

    
por 03.03.2016 / 14:57