调用查找器方法时,可以使用基于 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 查找器方法可以调用同一 XPath 表达式。
var datastores = Server.findAllForType("VC:Datastore", "xpath:name[contains(.,'ds')]"); for each (datastore in datastores){ System.log(datastore.name); }
以下脚本示例会返回其 ID 以数字 1 开头的所有主机系统对象的名称。
var hosts = VcPlugin.getAllHostSystems(null, "xpath:id[starts-with(.,'1')]"); for each (host in hosts){ System.log(host.name); }
以下脚本会返回其名称中包含字符串 DC(无论大写或小写)的所有数据中心对象的名称和 ID。该脚本还可检索标记属性。
var datacenters = VcPlugin.getAllDatacenters(['tag'], "xpath:name[contains(translate(., 'DC', 'dc'), 'dc')]"); for each (datacenter in datacenters){ System.log(datacenter.name + " " + datacenter.id); }