【发布时间】:2015-12-30 08:06:16
【问题描述】:
我正在尝试使用VMWare PowerCLI v6.0 来做一些自动化的事情。我找到了 cmdlet 文档的已安装和在线版本,并且在大多数情况下,它会告诉您有关命令的非常简单的信息,例如参数、返回类型和 cmdlet 的作用。
我正在尝试查找更完整的文档,因为 VMWare 提供的在线文档没有列出特定 cmdlet 可能引发的异常,并且肯定没有正确描述类型及其属性。例如:
$org = Get-Org -Name "test"
$leases = $org.ExtensionData.Settings.GetVAppLeaseSettings()
$leases.DeploymentLeaseSeconds = 0
$leases.StorageLeaseSeconds = 0
$leases.DeleteOnStorageLeaseExpiration = $False
$leases.UpdateServerData()
示例代码可以在整个互联网上找到,但根本没有任何细节,只是一个模糊的“这就是你 X 的方式”。我已经搜索和搜索,但我找不到任何关于 ExtensionData 返回什么类型的文档,并且绝对没有关于方法 GetVAppLeaseSettings 的文档。就 VMWare 及其文档而言,似乎不存在此功能。
有谁知道我在哪里可以找到列出每个 cmdlet 引发的异常以及在 ExtensionData 属性中返回哪些 CLR 类型的文档?
更新
我在 PowerCLI 上观看了 Pluralsight 视频,发现只需运行即可显示 ExtensionData 对象类型和属性
$obj.ExtensionData
您还可以通过运行查看该对象的所有可用方法
$obj.ExtensionData | Get-Member -MemberType method
这样做的问题是您需要连接到现有的 vCloud 服务器,即使这列出了可用的属性和方法,它也没有显示这些属性或方法的任何文档。更不用说您实际上需要创建一个对象才能查询这些值,例如:
$org = Get-Org -Name "test"
$org.ExtensionData | Get-Member -MemberType method
在上面的示例中,我需要连接到服务器并且已经创建了一个组织以便能够查看其属性和方法。
我正在寻找有关这些属性和方法的文档,但在我搜索过的任何地方似乎都不存在。
编辑
如果您反对或投票结束,请向我提供反馈。这是一个严肃的问题,在我将其发布到这里之前,我已经做了很多研究以自己回答这个问题。
【问题讨论】:
-
如果你发现缺少官方文档(我无法反驳),你最好的朋友是
GetType()、Get-Member和ILSpy -
@MathiasR.Jessen 我明白这一点,这就是我一直在使用的。这就是我问这个问题的原因,我想知道我是否缺少任何东西,是否有一些我没有找到的文档。我也在一个很难一直连接的环境中这样做,所以使用
GetType()和Get-Member并不总是可行的 -
在这种情况下,检查 ILSpy 中的 PowerCLI SDK dll 肯定会有所帮助(如果您还没有这样做的话)。虽然它不会给你一个完整的例外列表,但它至少会让你知道会发生什么
-
@MathiasR.Jessen 我有,这就是我害怕的,尤其是
ExtensionData实际上是什么类型的问题,因为在ILSpy返回的类型主要是接口,没有实际实现,除非我花了很多时间寻找实际实例化并分配给ExtensionData的类。看起来我被困在这方面的 0 个文档中。谢谢。 -
投票结束,因为您要求我们推荐场外文档,这显然是题外话。
标签: powershell powercli vcloud-director-rest-api