In some situations, knowing the structure of ImageProfile, SoftwarePackage, and ImageProfileDiff objects helps you manage deployment and upgrade processes.

The ImageProfile object, which is accessible with the Get-EsxImageProfile PowerCLI cmdlet, has the following properties.

Name

Type

Description

AcceptanceLevel

AcceptanceLevel

Determines which VIBs you can add to the profile. Levels are VMwareCertified, VMwareAccepted, PartnerSupported, and CommunitySupported. See Acceptance Levels.

Author

System.String

Person who created the profile. 60 characters or fewer.

CreationTime

System.DateTime

Timestamp of creation time.

Description

System.String

Full text description of profile. No length limit.

GUID

System.String

Globally unique ID of the image profile.

ModifiedTime

System.DateTime

Timestamp of last modification time.

Name

System.String

Name of the image profile. 80 characters or fewer.

ReadOnly

System.Boolean

When set to true, the profile cannot be edited. Use Set-EsxImageProfile -Readonly to make your custom image profiles read only.

Rules

ImageProfileRule[]

Displays any OEM hardware requirements that the image profile might have. Auto Deploy checks this property when deploying an image profile and deploys the profile if matching hardware is available.

Vendor

System.String

Organization that publishes the profile. 40 characters or fewer.

VibList

SoftwarePackage[]

List of VIB IDs the image consists of.

When preparing an image profile, you can examine software packages to decide which packages are suitable for inclusion. The SoftwarePackage object has the following properties.

Name

Type

Description

AcceptanceLevel

AcceptanceLevel

Acceptance level of this VIB.

Conflicts

SoftwareConstraint[]

List of VIBs that cannot be installed at the same time as this VIB. Each constraint uses the following format:

package-name[<<|<=|=|>=|<< version]

Depends

SoftwareConstraint[]

List of VIBs that must be installed at the same time as this VIB. Same constraint format as Conflicts property.

Description

System.String

Long description of the VIB.

Guid

System.String

Unique ID for the VIB.

LiveInstallOk

System.Boolean

True if live installs of this VIB are supported.

LiveRemoveOk

System.Boolean

True if live removals of this VIB are supported.

MaintenanceMode

System.Boolean

True if hosts must be in maintenance mode for installation of this VIB.

Name

System.String

Name of the VIB. Usually uniquely describes the package on a running ESXi system.

Provides

SoftwareProvides

List of virtual packages or interfaces this VIB provides. See SoftwareProvide Object Properties.

ReferenceURLs

SupportReference[]

List of SupportReference objects with in-depth support information. The SupportReference object has two properties, Title and URL, both of type System.String.

Replaces

SoftwareConstraint[]

List of SoftwareConstraint objects that identify VIBs that repliace this VIB or make it obsolete. VIBs automatically replace VIBs with the same name but lower versions.

ReleaseDate

System.DateTime

Date and time of VIB publication or release.

SourceUrls

System.String[]

List of source URLs from which this VIB can be downloaded.

StatelessReady

System.Boolean

True if the package supports host profiles or other technologies that make it suitable for use in conjunction with vSphere Auto Deploy.

Summary

System.String

One-line summary of the VIB.

Tags

System.String[]

An array of string tags for this package defined by the vendor or publisher. Tags can be used to identify characteristics of a package.

Vendor

System.String

VIB vendor or publisher.

Version

System.String

VIB version.

VersionObject

Software.Version

The VersionObject property is of type SoftwareVersion. The SoftwareVersion class implements a static Compare method to compare two versions of strings. See SoftwareVersion Object Properties

When you run the Compare-EsxImageProfile cmdlet, you pass in two parameters, first the reference profile, and then the comparison profile. The cmdlet returns an ImageProfileDiff object, which has the following properties.

Name

Type

Description

CompAcceptanceLevel

System.String

Acceptance level for the second profile that you passed to Compare-EsxImageProfile.

DowngradeFromRef

System.String[]

List of VIBs in the second profile that are downgrades from VIBs in the first profile.

Equal

System.Boolean

True if the two image profiles have identical packages and acceptance levels.

OnlyInComp

System.String

List of VIBs found only in the second profile that you passed to Compare-EsxImageProfile.

OnlyInRef

System.String[]

List of VIBs found only in the first profile that you passed to Compare-EsxImageProfile.

PackagesEqual

System.Boolean

True if the image profiles have identical sets of VIB packages.

RefAcceptanceLevel

System.String

Acceptance level for the first profile that you passed to Compare-EsxImageProfile.

UpgradeFromRef

System.String[]

List of VIBs in the second profile that are upgrades from VIBs in the first profile.

The SoftwareVersion object allows you to compare two version strings. The object includes a Compare static methot that accepts two strings as input and returns 1 if the first version string is higher than the second version string. Compare returns 0 if two versions strings are equal. Compare returns -1 if the second version string is higher than the first string. The object has the following properties.

Name

Type

Description

Version

System.String

The part of the version before the hyphen. This part indicates the primary version.

Release

System.String

The part of the version after the hyphen. This part indicates the release version.

The SoftwareConstraint object implements a MatchesProvide method. The method accepts a SoftwareProvides or SoftwarePackage object as input and returns True if the constraint matches the SoftwareProvide or the SoftwarePackage, or False otherwise.

The SoftwareConstraint object also includes the following properties.

Name

Type

Description

Name

System.String

Name of the constraint. This name should match a corresponding SoftwareProvides Name property.

Relation

System.String

An enum, or one of the following comparison indicators: <<, <=, = >=, >>. This property can be $null if the constraint does not have a Relation and Version property.

Version

System.String

The version to match the constraint against. This property can be $null if the constraint does not have a Relation and Version property.

VersionObject

SoftwareVersion

The version represented by a SoftwareVersion object.

The SoftwareProvide object includes the following properties.

Name

Type

Description

Name

System.String

Name of the provide

Version

System.String

Version of the provide. Can be $null if the provide does not specify a version.

Release

System.String

Version of the provide as represented by a SoftwareVersion object. See SoftwareVersion Object Properties.