簡體   English   中英

如何從PowerCLI獲取虛擬機器的第一個數據存儲名稱

[英]How to get first datastore name of virtual maschine from powercli

我正在編寫一些腳本,但我遇到了問題。 可以說我在ESXi上有2個VM,第一個VM名稱是VM1,第二個是VM2。

VM1位於一個名為DISK1的數據存儲上,VM2位於兩個名為DISK2和DISK3的數據存儲上

當我運行powercli並連接到服務器並啟動類似的命令時

((get-vm "NAMEofVM" | Get-Datastore | Select-Object -Property name)[0]).name

如果我用VM1替換“ NAMEofVM”,結果將是

DISK1

如果我用VM2替換“ NAMEofVM”,結果將是

    Unable to index into an object of type System.Management.Automation.PSObject.
At line:1 char:66
+ ((get-vm VM2 | Get-Datastore | Select-Object -Property name)[ <<<< 0]).na
me
    + CategoryInfo          : InvalidOperation: (0:Int32) [], RuntimeException
    + FullyQualifiedErrorId : CannotIndex

怎么解決呢? 我只想獲得第一個數據存儲區,而不是全部。

猜測您有問題,因為Get-Datastore可能僅返回單個元素,並且錯誤中列出的類型支持該System.Management.Automation.PSObject 不用嘗試用[0]索引到數組中,我們可以使用Select-Object來完成工作

Get-VM "NAMEofVM" | Get-Datastore | Select-Object -ExpandProperty name -First 1

或者,就像您說的那樣,這是一個更簡潔的選項。 如果以這種方式進行,則指定-Property將是多余的。

(get-vm "NAMEodVM" | Get-Datastore | Select-Object -First 1).name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM