en-US/OSDCloud-help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Deploy-OSDCloud</command:name>
      <command:verb>Deploy</command:verb>
      <command:noun>OSDCloud</command:noun>
      <maml:description>
        <maml:para>Starts an OSDCloud operating system deployment.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Initializes and runs an OSDCloud deployment workflow. By default, launches the graphical UI (UX) so the operator can configure deployment settings before starting. Use -CLI to skip the UI and immediately begin the workflow in the current console session.</maml:para>
      <maml:para>In addition to the static parameters documented here, workflow-specific runtime parameters are added dynamically from the selected workflow definition.</maml:para>
      <maml:para>When OSLanguageCode is omitted, automatic language selection from KeyboardLayout or the detected keyboard layout requires a valid Recast license through Test-OSDCoreLicense. Registration alone does not qualify. Missing, invalid, or failed license lookups skip conversion and use en-US without warnings. Explicit OSLanguageCode selection remains available without a license.</maml:para>
      <maml:para>DiskLabelOS, DiskLabelRecovery, DiskSizeSystem, DiskSizeOS, and DiskSizeRecovery require a valid Recast license through the shared Test-OSDCoreLicense check: the selected Get-OSDCoreLicense result must have IsValid = true. Registration alone does not qualify. Missing, invalid, or failed lookups deny customization. Explicitly supplied customization without a valid license produces one warning and deployment uses default labels OS/Recovery, system size 500MB, recovery size 2000MB, and automatic Windows sizing. No warning is emitted when none are supplied. DiskNumber remains available without a license. Parameter-binding validation still applies before the license check.</maml:para>
      <maml:para>OSDCloud collects anonymous analytic data about the deployment environment and system configuration to help improve the product. No personally identifiable information (PII) is collected. By using OSDCloud you consent to this collection as described in the privacy policy: https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Deploy-OSDCloud</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Incognito</maml:name>
          <maml:description>
            <maml:para>Simulates no Recast license: forces IsRegistered to false and makes Get-OSDCoreLicense return no license without reading saved licenses. Applies to CLI and GUI launches. Does not modify the saved license or disable analytics. The next launch without this switch reloads normal license state.</maml:para>
          </maml:description>
          <dev:type><maml:name>SwitchParameter</maml:name><maml:uri /></dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DiskLabelOS</maml:name>
          <maml:description>
            <maml:para>Windows NTFS volume label. Defaults to OS. Must be nonblank, at most 32 characters, with no control characters or \ / : * ? " &lt; &gt; | + , ; = [ ].</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type><maml:name>String</maml:name><maml:uri /></dev:type>
          <dev:defaultValue>OS</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DiskLabelRecovery</maml:name>
          <maml:description>
            <maml:para>Recovery NTFS volume label. Defaults to Recovery. Uses the same validation as DiskLabelOS and does not enable recovery when skipped.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type><maml:name>String</maml:name><maml:uri /></dev:type>
          <dev:defaultValue>Recovery</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DiskSizeSystem</maml:name>
          <maml:description>
            <maml:para>System partition size in bytes, from 100MB through 3000MB. Defaults to 500MB. Accepts PowerShell binary-unit expressions such as 1GB.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">UInt64</command:parameterValue>
          <dev:type><maml:name>UInt64</maml:name><maml:uri /></dev:type>
          <dev:defaultValue>500MB</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DiskSizeOS</maml:name>
          <maml:description>
            <maml:para>Fixed Windows partition size in bytes, at least 32GB. When omitted, Windows uses the remaining space after reserving recovery. When supplied, recovery uses DiskSizeRecovery and excess space remains unallocated. Explicit zero is invalid.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">UInt64</command:parameterValue>
          <dev:type><maml:name>UInt64</maml:name><maml:uri /></dev:type>
          <dev:defaultValue>None (automatic sizing)</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DiskSizeRecovery</maml:name>
          <maml:description>
            <maml:para>Recovery partition size in bytes, from 350MB through 80000MB. Defaults to 2000MB. Does not change VM detection or recovery skip/force rules.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">UInt64</command:parameterValue>
          <dev:type><maml:name>UInt64</maml:name><maml:uri /></dev:type>
          <dev:defaultValue>2000MB</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName)" position="1" aliases="Name">
          <maml:name>WorkflowName</maml:name>
          <maml:description>
            <maml:para>The name of the OSDCloud workflow to run. Defaults to 'default'. Available workflows are located in the module's workflow folder.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Default</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>CLI</maml:name>
          <maml:description>
            <maml:para>Skips the graphical UX and runs the deployment workflow immediately in the current console session.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppresses supported confirmation prompts for destructive workflow steps.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The full OS profile name used to resolve the Env file path. Defaults to 'default'. Ignored in WinPE.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Default</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>OperatingSystem</maml:name>
          <maml:description>
            <maml:para>{{ Fill OperatingSystem Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>OSActivation</maml:name>
          <maml:description>
            <maml:para>{{ Fill OSActivation Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>OSEdition</maml:name>
          <maml:description>
            <maml:para>{{ Fill OSEdition Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>OSLanguageCode</maml:name>
          <maml:description>
            <maml:para>{{ Fill OSLanguageCode Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Task</maml:name>
          <maml:description>
            <maml:para>{{ Fill Task Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Incognito</maml:name>
        <maml:description>
          <maml:para>Simulates no Recast license: forces IsRegistered to false and makes Get-OSDCoreLicense return no license without reading saved licenses. Applies to CLI and GUI launches. Does not modify the saved license or disable analytics. The next launch without this switch reloads normal license state.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type><maml:name>SwitchParameter</maml:name><maml:uri /></dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DiskLabelOS</maml:name>
        <maml:description>
          <maml:para>Windows NTFS volume label. Defaults to OS. Must be nonblank, at most 32 characters, with no control characters or \ / : * ? " &lt; &gt; | + , ; = [ ].</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type><maml:name>String</maml:name><maml:uri /></dev:type>
        <dev:defaultValue>OS</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DiskLabelRecovery</maml:name>
        <maml:description>
          <maml:para>Recovery NTFS volume label. Defaults to Recovery. Uses the same validation as DiskLabelOS and does not enable recovery when skipped.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type><maml:name>String</maml:name><maml:uri /></dev:type>
        <dev:defaultValue>Recovery</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DiskSizeSystem</maml:name>
        <maml:description>
          <maml:para>System partition size in bytes, from 100MB through 3000MB. Defaults to 500MB. Accepts PowerShell binary-unit expressions such as 1GB.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">UInt64</command:parameterValue>
        <dev:type><maml:name>UInt64</maml:name><maml:uri /></dev:type>
        <dev:defaultValue>500MB</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DiskSizeOS</maml:name>
        <maml:description>
          <maml:para>Fixed Windows partition size in bytes, at least 32GB. When omitted, Windows uses the remaining space after reserving recovery. When supplied, recovery uses DiskSizeRecovery and excess space remains unallocated. Explicit zero is invalid.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">UInt64</command:parameterValue>
        <dev:type><maml:name>UInt64</maml:name><maml:uri /></dev:type>
        <dev:defaultValue>None (automatic sizing)</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DiskSizeRecovery</maml:name>
        <maml:description>
          <maml:para>Recovery partition size in bytes, from 350MB through 80000MB. Defaults to 2000MB. Does not change VM detection or recovery skip/force rules.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">UInt64</command:parameterValue>
        <dev:type><maml:name>UInt64</maml:name><maml:uri /></dev:type>
        <dev:defaultValue>2000MB</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName)" position="1" aliases="Name">
        <maml:name>WorkflowName</maml:name>
        <maml:description>
          <maml:para>The name of the OSDCloud workflow to run. Defaults to 'default'. Available workflows are located in the module's workflow folder.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Default</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>CLI</maml:name>
        <maml:description>
          <maml:para>Skips the graphical UX and runs the deployment workflow immediately in the current console session.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Suppresses supported confirmation prompts for destructive workflow steps.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>ProfileName</maml:name>
        <maml:description>
          <maml:para>The full OS profile name used to resolve the Env file path. Defaults to 'default'. Ignored in WinPE.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Default</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>OperatingSystem</maml:name>
        <maml:description>
          <maml:para>{{ Fill OperatingSystem Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>OSActivation</maml:name>
        <maml:description>
          <maml:para>{{ Fill OSActivation Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>OSEdition</maml:name>
        <maml:description>
          <maml:para>{{ Fill OSEdition Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>OSLanguageCode</maml:name>
        <maml:description>
          <maml:para>{{ Fill OSLanguageCode Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Task</maml:name>
        <maml:description>
          <maml:para>{{ Fill Task Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Void</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This command writes deployment status to the host and starts workflow tasks. In GUI mode, workflow execution starts only after the operator clicks Start. Runtime parameters are provided by Get-OSDCloudWorkflowRuntimeParameter.</maml:para>
        <maml:para>Each invocation resets global OSDCloudResults, a reduced metadata and lifecycle summary. Status is NotStarted, Running, Completed, Failed, or Cancelled. IsComplete becomes true when the workflow returns, before PostAction; it does not guarantee that every step succeeded. StartTimeUtc, EndTimeUtc, and whole-number totalDurationRAW describe workflow execution, excluding initialization, GUI selection, results reporting, and PostAction. stepOSCopy, stepOSDownload, stepDriverPackCopy, and stepDriverPackDownload measure separate copy/download operations, excluding source checks, cache search, verification, extraction, and injection. stepOSExpand and stepDriverPackExpand measure Windows image application and driver extraction during deployment; deferred SetupComplete installation is not included. stepClearDisk measures only disk-cleaning confirmation response time, not disk cleaning. totalDuration subtracts that wait from totalDurationRAW, with an absent wait treated as zero and the result never below zero. timeDownload, timeCache, timeCopy, and timeExpand combine matching OS and driver-pack steps. timeCloud combines download and cache time, while timeOther subtracts every step duration from totalDurationRAW and never falls below zero. The final console summary omits step*, rate*, and time* fields. OSFileName and DriverPackFileName identify the selected content files. sizeOS and sizeDriverPack measure actual acquired content. totalSizeDownloadMB, totalSizeCacheMB, and totalSizeCopyMB separately sum local downloads, USB-cache downloads, and copied/reused original bytes before rounding. USB-cache downloads contribute to Cache instead of Download; subsequent local copies contribute to Copy. stepOSCache and stepDriverPackCache measure USB downloads separately from direct Download phases. Existing files reused from USB do not count as new cache downloads. These are content sizes, not wire traffic. MB uses 1,048,576 bytes. Values round to whole numbers with halves rounded up. Unexecuted phases are null; attempted phases retain elapsed time even on failure.</maml:para>
        <maml:para>totalSizeMB combines sizeOS and sizeDriverPack. totalMBps divides totalSizeMB by totalDuration in MB/s, rounded to a whole number; a missing or zero duration produces null. rateOSDownload, rateOSCache, rateOSCopy, rateOSExpand, rateDriverPackDownload, rateDriverPackCache, rateDriverPackCopy, and rateDriverPackExpand divide the reported content size by the matching step duration in MB/s, rounded to whole numbers with halves rounded up. Missing sizes or missing/zero durations produce null. Expansion rates use source archive size. Network is Wired or Wireless based on connected default-gateway adapters when results metadata is refreshed; unavailable or ambiguous detection produces null. Results are displayed in the console after completion and before PostAction, excluding step*, rate*, and time* fields. Exports and analytics retain all fields.</maml:para>
        <maml:para>ContentSource classifies combined OS/driver-pack origin as Cloud for new downloads (including downloads to USB), Cache for pre-existing content, or Mixed when both origins were used. A subsequent local copy of a new USB download does not change its Cloud origin. Skipped or unavailable components are ignored. No obtained content or an obtained component with unknown source produces null.</maml:para>
        <maml:para>OSDCloudResults.clixml is saved in current TEMP at workflow start and termination, and in the deployed Windows volume's Windows\Temp at termination when available. Cancellation and initialization failure save only to current TEMP with null timing. Started runs also send a reduced OSDCloudResults terminal event to PostHog in addition to the existing start event. Reporting failures warn without blocking deployment. Forced termination or a custom workflow restart/exit can leave the snapshot marked Running. These results apply to Deploy-OSDCloud GUI and -CLI, not standalone deployment helpers or direct workflow invocation.</maml:para>
        <maml:para>Disk labels and sizes apply to CLI and GUI launches with a valid Recast license without new GUI controls. Unlicensed deployments warn once when customization is supplied and use defaults. Sizes are bytes; PowerShell expressions such as 500MB or 100GB use binary units. Invalid input still fails parameter binding, while otherwise valid unlicensed customization is discarded before capacity checks. Layouts that cannot fit the target disk fail before disk clearing. Capacity checks include system, MSR, enabled recovery, and alignment/metadata allowance.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Deploy-OSDCloud</dev:code>
        <dev:remarks>
          <maml:para>Launches the OSDCloud graphical UX for the default workflow. The deployment starts only after the operator clicks Start in the UI.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>Deploy-OSDCloud -CLI</dev:code>
        <dev:remarks>
          <maml:para>Runs the default OSDCloud workflow immediately without the graphical UX.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 3 --------------------------</maml:title>
        <dev:code>Deploy-OSDCloud -WorkflowName 'latest'</dev:code>
        <dev:remarks>
          <maml:para>Launches the graphical UX for the 'latest' workflow.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 4 --------------------------</maml:title>
        <dev:code>Deploy-OSDCloud -CLI -OperatingSystem 'Windows 11 24H2' -OSEdition 'Enterprise'</dev:code>
        <dev:remarks>
          <maml:para>Runs in CLI mode using dynamic runtime overrides from the selected workflow.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 5 --------------------------</maml:title>
        <dev:code>Deploy-OSDCloud -ProfileName 'Lab'</dev:code>
        <dev:remarks>
          <maml:para>Launches the OSDCloud graphical UX using the 'Lab' profile Env path.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md</maml:linkText>
        <maml:uri>https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-OSDCloudModulePath</command:name>
      <command:verb>Get</command:verb>
      <command:noun>OSDCloudModulePath</command:noun>
      <maml:description>
        <maml:para>Returns the base directory path of the OSDCloud module.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the file system path to the root folder where the OSDCloud module is installed. This is useful for locating module-relative resources such as catalogs, templates, and support files.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-OSDCloudModulePath</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String. The absolute path to the OSDCloud module directory.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-OSDCloudModulePath</dev:code>
        <dev:remarks>
          <maml:para>Returns the path to the OSDCloud module directory, e.g. 'C:\Program Files\WindowsPowerShell\Modules\OSDCloud\1.0.0'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-OSDCloudModuleVersion</command:name>
      <command:verb>Get</command:verb>
      <command:noun>OSDCloudModuleVersion</command:noun>
      <maml:description>
        <maml:para>Returns the version of the OSDCloud module.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the currently loaded version of the OSDCloud module as a System.Version object. This is useful for version checks, logging, and compatibility validation in scripts.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-OSDCloudModuleVersion</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Version. The version of the OSDCloud module.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-OSDCloudModuleVersion</dev:code>
        <dev:remarks>
          <maml:para>Returns the loaded OSDCloud module version, e.g. '1.0.0'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Show-OSDCloudDeviceInfo</command:name>
      <command:verb>Show</command:verb>
      <command:noun>OSDCloudDeviceInfo</command:noun>
      <maml:description>
        <maml:para>Displays comprehensive WinPE and device hardware information during OS deployment startup.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Gathers and displays detailed hardware and environment information in Windows PE including system specifications, device identifiers, processor details, memory configuration, disk drives, and network adapters. Initializes the OSDCloud device environment and exports hardware WMI information to log files in the temporary directory. Validates system memory requirements and provides warnings if minimum specifications are not met.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Show-OSDCloudDeviceInfo</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None. This function displays system information to the console and exports hardware data to log files but does not return objects.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This function is designed for use in Windows PE startup environments and performs the following operations:</maml:para>
        <maml:para>Information Displayed: - OSDCloud PowerShell Module version</maml:para>
        <maml:para>- WinPE version, architecture, and computer name</maml:para>
        <maml:para>- Device manufacturer and model</maml:para>
        <maml:para>- BIOS information</maml:para>
        <maml:para>- Processor name and logical core count</maml:para>
        <maml:para>- Total physical memory in GB</maml:para>
        <maml:para>- Disk drive models and device IDs</maml:para>
        <maml:para>- Network adapter names and MAC addresses</maml:para>
        <maml:para></maml:para>
        <maml:para>Note: Serial number and UUID output are suppressed for privacy reasons.</maml:para>
        <maml:para>System Requirements: - Minimum 6 GB of physical memory recommended</maml:para>
        <maml:para>- Issues warning if memory is less than 6 GB</maml:para>
        <maml:para></maml:para>
        <maml:para>Log Files Created: - Stores device information in $env:TEMP\osdcloud-logs directory</maml:para>
        <maml:para>- Win32_DiskDrive.txt: Complete disk drive information</maml:para>
        <maml:para>- Win32_NetworkAdapter.txt: Complete network adapter information</maml:para>
        <maml:para></maml:para>
        <maml:para>Functions Called: - Get-OSDCloudModuleVersion: Retrieves current OSDCloud module version</maml:para>
        <maml:para>- Initialize-OSDCoreDevice: Populates $global:OSDCoreDevice with hardware details</maml:para>
        <maml:para></maml:para>
        <maml:para>The function updates the window title to '[OSDCloud] - WinPE and Device Information' to indicate the current operation status.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Show-OSDCloudDeviceInfo
Runs Show-OSDCloudDeviceInfo to display comprehensive WinPE and device information including hardware specifications and device identifiers.</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Start-OSDCloudExplorer</command:name>
      <command:verb>Start</command:verb>
      <command:noun>OSDCloudExplorer</command:noun>
      <maml:description>
        <maml:para>Opens a graphical file browser for WinPE and WinRE environments.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Provides a Windows Forms file browser with TreeView, ListView, navigation (Up), and keyboard shortcuts. Designed for use in Windows PE and Windows RE where Windows Explorer is not available.</maml:para>
      <maml:para>The WinPE image must include: - WinPE-NetFX - WinPE-PowerShell</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Start-OSDCloudExplorer</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DirectLaunch</maml:name>
          <maml:description>
            <maml:para>Internal: run the WinForms UI inline (blocking) inside the spawned child process. Not intended for direct use - hidden from tab-completion.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DirectLaunch</maml:name>
        <maml:description>
          <maml:para>Internal: run the WinForms UI inline (blocking) inside the spawned child process. Not intended for direct use - hidden from tab-completion.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Start-OSDCloudExplorer</dev:code>
        <dev:remarks>
          <maml:para>Opens the file browser. Use the CopyPath button or Ctrl+C to copy a path to the clipboard.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
</helpItems>