2016-11-14 46 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