Как я могу найти «подчиненные свойства» объекта в powershell? - PullRequest
0 голосов
/ 28 октября 2018

Полагаю, я просто не знаю правильного названия того, что ищу, но это, наверное, спрашивали тысячу раз раньше.

Я запустил PowerShell не так давно, и я изо всех силчтобы понять, где я могу найти «вспомогательные свойства» (если можно так назвать) объекта.

Например, я использовал VMware PowerCLI и пытался выяснить, как мне найтиIP-адрес виртуальной машины.

Так, например, я использовал команду Get-VM, и когда я передал ее в get member, я получил следующее:

PS C:\Users\eitan.rapaport> get-vm "*VRA*" | gm


   TypeName: VMware.VimAutomation.ViCore.Impl.V1.VM.UniversalVirtualMachineImpl

Name                    MemberType Definition
----                    ---------- ----------
ConvertToVersion        Method     T VersionedObjectInterop.ConvertToVersion[T]()
Equals                  Method     bool Equals(System.Object obj)
GetClient               Method     VMware.VimAutomation.ViCore.Interop.V1.VIAutomation VIObjectCoreInterop.GetClient()
GetConnectionParameters Method     VMware.VimAutomation.ViCore.Interop.V1.VM.RemoteConsoleVMParams RemoteConsoleVMIn..
GetHashCode             Method     int GetHashCode()
GetType                 Method     type GetType()
IsConvertableTo         Method     bool VersionedObjectInterop.IsConvertableTo(type type)
LockUpdates             Method     void ExtensionData.LockUpdates()
ObtainExportLease       Method     VMware.Vim.ManagedObjectReference ObtainExportLease.ObtainExportLease()
ToString                Method     string ToString()
UnlockUpdates           Method     void ExtensionData.UnlockUpdates()
CoresPerSocket          Property   int CoresPerSocket {get;}
CustomFields            Property   System.Collections.Generic.IDictionary[string,string] CustomFields {get;}
DatastoreIdList         Property   string[] DatastoreIdList {get;}
DrsAutomationLevel      Property   System.Nullable[VMware.VimAutomation.ViCore.Types.V1.Cluster.DrsAutomationLevel] ..
ExtensionData           Property   System.Object ExtensionData {get;}
Folder                  Property   VMware.VimAutomation.ViCore.Types.V1.Inventory.Folder Folder {get;}
FolderId                Property   string FolderId {get;}
Guest                   Property   VMware.VimAutomation.ViCore.Types.V1.VM.Guest.VMGuest Guest {get;}
GuestId                 Property   string GuestId {get;}
HAIsolationResponse     Property   System.Nullable[VMware.VimAutomation.ViCore.Types.V1.Cluster.HAIsolationResponse]..
HardwareVersion         Property   string HardwareVersion {get;}
HARestartPriority       Property   System.Nullable[VMware.VimAutomation.ViCore.Types.V1.Cluster.HARestartPriority] H..
Id                      Property   string Id {get;}
MemoryGB                Property   decimal MemoryGB {get;}
MemoryMB                Property   decimal MemoryMB {get;}
Name                    Property   string Name {get;}
Notes                   Property   string Notes {get;}
NumCpu                  Property   int NumCpu {get;}
PersistentId            Property   string PersistentId {get;}
PowerState              Property   VMware.VimAutomation.ViCore.Types.V1.Inventory.PowerState PowerState {get;}
ProvisionedSpaceGB      Property   decimal ProvisionedSpaceGB {get;}
ResourcePool            Property   VMware.VimAutomation.ViCore.Types.V1.Inventory.ResourcePool ResourcePool {get;}
ResourcePoolId          Property   string ResourcePoolId {get;}
Uid                     Property   string Uid {get;}
UsedSpaceGB             Property   decimal UsedSpaceGB {get;}
VApp                    Property   VMware.VimAutomation.ViCore.Types.V1.Inventory.VApp VApp {get;}
Version                 Property   VMware.VimAutomation.ViCore.Types.V1.VM.VMVersion Version {get;}
VMHost                  Property   VMware.VimAutomation.ViCore.Types.V1.Inventory.VMHost VMHost {get;}
VMHostId                Property   string VMHostId {get;}
VMResourceConfiguration Property   VMware.VimAutomation.ViCore.Types.V1.VM.VMResourceConfiguration VMResourceConfigu..
VMSwapfilePolicy        Property   System.Nullable[VMware.VimAutomation.ViCore.Types.V1.VMSwapfilePolicy] VMSwapfile..

Как вывидите, ничего не упоминает об IP.

Я исследовал это в Интернете и обнаружил, что должен выполнить следующую команду:

Get-VM | Select Name, @{N="IP Address";E={@($_.guest.IPAddress[0])}}

, которая приводит меня к моему вопросу.Как я могу найти свойства определенного члена / свойства команды?Как я мог исследовать «подсвойства» гостя в этом примере?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Другой метод самоанализа в PowerShell - просто получить имя класса и затем найти его в API.

PS C:\> $Files = Get-ChildItem *.* -File
PS C:\> $Files[0].GetType().FullName
System.IO.FileInfo

Затем можно выполнить поиск этого класса с помощью C #или PowerShell, чтобы найти список API .

Вы можете сделать то же самое с документом VMWare PowerCLI .Список «всех типов» слева - это список всех классов, используемых модулем.

0 голосов
/ 28 октября 2018

Хорошо, нашел его.

В этом случае это будет get-vm "*VRA*" | select -ExpandProperty guest | gm

...