Início não interativo completo + conecte-se à VM do PowerShell

1

Eu sei como me conectar às VMs do Hyper-V da CLI:

vmconnect localhost 'machine'

Eu também sei como iniciá-los não interativamente, eu faço isso por meio de um atalho como este:

powershell.exe -ExecutionPolicy Bypass -Command "& {Start-VM -Name 'machine'}"

Mas como podemos combinar duas dessas ações em um atalho? Eu não quero abrir o console do Hyper-V. Eu tentei isso, mas não funcionou:

powershell.exe -ExecutionPolicy Bypass -Command "& {Start-VM -Name 'machine' & vmconnect localhost 'machine'}"

Ele lança:

At line:1 char:36
+ & {Start-VM -Name 'machine' & vmconnect localhost 'machine ...
+                                    ~
The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
quotation marks ("&") to pass it as part of a string.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : AmpersandNotAllowed

Além disso, como me parece, deve-se esperar um intervalo de tempo entre o início e a conexão, porque a sequência imediata de tais comandos não será executada com sucesso.

    
por Suncatcher 23.07.2017 / 09:19

1 resposta

1

Há duas coisas que estão faltando: você deve importar o módulo Hyper-V antes de iniciar a VM e & é um operador de invocação e não um separador de comando.

powershell.exe -ExecutionPolicy Bypass -Command "ipmo hyper-v; Start-VM machine; vmconnect localhost machine"

Eu testei o trabalho acima no Windows 10 1703.

    
por 28.07.2017 / 22:19