[英]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.