Describes the IoTProduct Class
This class provides functions to manage the product configurations. This uses ProductSettingsXML class and OEMInputXML class for managing the xml files and provides additional functionality such as creation of recovery scripts, OCP package management etc.
Constructor, creates the IoTProduct object and initialises with the oeminput file corresponding to the given config.
[IoTProduct]::new([String]$name, [String]$config)
Stores the array of OEM feature ids available in the FM files listed under AdditionalFMs section of the oeminput file.
Name: AvailableOEMFIDs
Type: String[]
Hidden: False
Static: False
Stores the BSP used in this product.
Name: BspName
Type: String
Hidden: False
Static: False
Stores the current active configuration that is loaded. ( can be Retail / Test or any user created config)
Name: Config
Type: String
Hidden: False
Static: False
The file name of the FFU corresponding to the config.
Name: FFUName
Type: String
Hidden: False
Static: False
Name of the product.
Name: Name
Type: String
Hidden: False
Static: False
Array of the OEMCerts used in the product.
Name: OEMCerts
Type: String[]
Hidden: False
Static: False
IoTOemInputXML object corresponding to the config.
Name: OemXML
Type: IoTOemInputXML
Hidden: False
Static: False
IoTProductSettingsXML object corresponding to this product.
Name: SettingsXML
Type: IoTProductSettingsXML
Hidden: False
Static: False
Array of the OEM packages included in this current configuration.
Name: UsedOEMPkgList
Type: String[]
Hidden: False
Static: False
Adds featureID to the active OEMInput xml. If AllConfig is true, then it adds the feature to all supported configuration xml files.
Name: AddFeatureID
Return Type: Void
Hidden: False
Static: False
Definition: Void AddFeatureID(String fid, Boolean IsOEM, Boolean AllConfig)
Creates the Device Inventory xml, used in registration of this product in the Device Update Center.
Name: CreateDeviceModel
Return Type: Void
Hidden: False
Static: False
Definition: Void CreateDeviceModel()
Exports the OCP cab bundle that can be uploaded to the Device Update Center.
Name: ExportOCP
Return Type: Void
Hidden: False
Static: False
Definition: Void ExportOCP()
Returns the IoTDeviceLayout object corresponding to this config.
Name: GetDeviceLayout
Return Type: IoTDeviceLayout
Hidden: False
Static: False
Definition: IoTDeviceLayout GetDeviceLayout()
Imports the CUSConfig.zip file into the product directory and updates the required settings in the oeminputxml files.
Name: ImportDUCConfig
Return Type: Void
Hidden: False
Static: False
Definition: Void ImportDUCConfig(String zipfile)
Loads the oeminputxml file corresponding to the specified config.
Name: LoadConfig
Return Type: Void
Hidden: False
Static: False
Definition: Void LoadConfig(String config)
Scans the workspace and updates the certs used in the product configuration. This updates OEMCerts.
Name: PopulateCerts
Return Type: Void
Hidden: False
Static: False
Definition: Void PopulateCerts()
Parses all the feature manifest files specified in the AdditionalFMs section and updates the AvailableOEMFIDs
Name: ProcessFeatureManifests
Return Type: Boolean
Hidden: False
Static: False
Definition: Boolean ProcessFeatureManifests()
Removes featureID to the active OEMInput xml. If AllConfig is true, then it removes the featureID from all supported configuration xml files.
Name: RemoveFeatureID
Return Type: Void
Hidden: False
Static: False
Definition: Void RemoveFeatureID(String fid, Boolean AllConfig)
Validates if all the feature ids specified in the oeminput file are defined and are allowed in that configuration.
Name: ValidateFeatures
Return Type: Boolean
Hidden: False
Static: False
Definition: Boolean ValidateFeatures()
Validates if all the packages used in the product configuration are present and properly signed (both the package and its contents)
Name: ValidatePackages
Return Type: Boolean
Hidden: False
Static: False
Definition: Boolean ValidatePackages()
A Sample use of this class
$prod = New-IoTProduct SampleA Test
$prod.ValidateFeatures()
$prod.ValidatePackages()
None
None
- IoT Core Product Class