2016-11-14 47 views
0

要长话短说,我想连接到正在运行的虚拟机,然后让所有的机器上安装的目录服务器,我用这个命令是:PowerShell的:等待改变目录

Invoke-Command -ScriptBlock {enter-pssession -ComputerName <name>}; Invoke-Command -ScriptBlock {Get-VM} | select-Object -Property name 

此行包含在第一两个命令:

Invoke-Command -ScriptBlock {enter-pssession -ComputerName <name>}; 

这部分连接到服务器,然后:

Invoke-Command -ScriptBlock {Get-VM} | select-Object -Property name 

此命令获取服务器上当前虚拟机的列表,并返回这些服务器的特定属性。

但是,由于连接需要很短的时间才能建立,因此“get-vm”命令仍然在前一个方向上设置并生成错误报告。

我想知道是否有办法等待ether命令完成或目录中的更改,而没有额外的循环运行,或者等待硬设置时间。

+0

start-sleep 5 ?? – 4c74356b41

+0

@ 4c74356b41他指定他正在寻找一种不会“等待困难时间”的解决方案 – user2121604

回答

1

我不知道为什么你想做什么,你正在尝试做的,你应该做的是:

调用命令-SessionName(或-ComputerName)-ScriptBlock {GET-VM | Select-Object -Property name}

+0

这部分内容已包含在内,我更新了我的问题,使其更加清楚了我正在尝试做什么。 – Etaila

+1

不,你正在运行几个invoke-command,但你应该只运行一次,就像在答案中一样。你为什么要做''调用命令-ScriptBlock {输入-sepssession -ComputerName };'',这没有意义 – 4c74356b41

+0

我很抱歉,我刚才看到你的命令是一个直接的Get-VM命令到服务器当前目录中,我试图先将目录更改为服务器上虚拟机的目录,然后使用get-vm。 我现在要反过来做。 – Etaila