您可以在 vCenter 外掛程式中使用 finder 方法查詢 vCenter 詳細目錄物件。您可以使用 XPath 運算式定義搜尋參數。

vCenter 外掛程式包含物件 finder 方法的集合,例如 getAllDatastores()getAllResourcePools()findAllForType()。您可以使用這些方法存取將連接 Automation Orchestrator 伺服器的 vCenter 執行個體列出的詳細目錄,並依照識別碼、名稱或其他內容搜尋物件。

由於效能因素,finder 方法不會傳回已查詢物件的任何內容,除非您在搜尋查詢中指定一組內容。

您可以在 Orchestrator 說明文件首頁查詢線上版的指令碼 API 瞭解 vCenter 外掛程式。

重要: 以 XPath 運算式為基礎的查詢可能影響 Automation Orchestrator 效能,因為 finder 方法會傳回 vCenter 端指定類型的所有物件,而且查詢篩選器將套用於 vCenter 外掛程式端。

使用 XPath 運算式搭配 vCenter 外掛程式範例

您叫用 finder 方法時,可以使用以 XPath 查詢語言為基礎的運算式。搜尋會傳回符合 XPath 運算式的所有詳細目錄物件。如果您要查詢任何內容,可以透過字串陣列的形式將這些內容加入於搜尋指令碼。

下列 JavaScript 範例使用 VcPlugin 指令碼物件和 XPath 運算式傳回屬於 vCenter 受管理物件一部分而且名稱包含字串 ds 的所有資料存放區物件名稱。

var datastores = VcPlugin.getAllDatastores(null, "xpath:name[contains(.,'ds')]");
for each (datastore in datastores){
     System.log(datastore.name); 
 }

使用 Server 指令碼物件和 findAllForType finder 方法可叫用同一個 XPath 運算式。

var datastores = Server.findAllForType("VC:Datastore", "xpath:name[contains(.,'ds')]");
for each (datastore in datastores){
     System.log(datastore.name); 
 }

下列指令碼範例會傳回識別碼開頭為數字 1 的所有主機系統物件。

var hosts = VcPlugin.getAllHostSystems(null, "xpath:id[starts-with(.,'1')]");
for each (host in hosts){
     System.log(host.name); 
}

下列指令碼會傳回名稱包含大寫或小寫字母字串 DC 的所有資料中心物件名稱和識別碼。指令碼也會擷取標記內容。

var datacenters = VcPlugin.getAllDatacenters(['tag'], "xpath:name[contains(translate(., 'DC', 'dc'), 'dc')]");
for each (datacenter in datacenters){
     System.log(datacenter.name + " "  +  datacenter.id); 
}