Disk number variable for Format and Partition Disk step
Sometimes OSD does not put Windows on the drive that we want in systems with multiple drives because of things like raid/SAS controllers or nVME. If you allow a variable to be used for the "disk number" in the format and partition step, a custom UI could be used to select the correct disk number from WMI and send that variable (which is just a number) to the format and partition step.
Taylor Harris commented
I absolutely second this.
It may not be so important for ZTI, as everything can be done with scripts using the OSDDiskIndex variable to identify the correct disk to partition, but in the case of interactive OSD GUI's, being able to use a variable for the disk NUMBER in the Format and Partition step is essential.
Here's my personal use case:
I've built my own OSD menu that allows our techs to choose all options and software for the deployment at the start of the task sequence. In the menu is a combobox drop-down that I populate with all of the physical disks in that machine so the user can select the disk to format and use for the operating system.
To be able to use the built-in "Format and Partition Disk" step in the task sequence, I have to create duplicated entries of these steps for as many possible physical disks that could ever be in any system (which may or may not change over time). Doing this also litters the task sequence with duplicate steps that wouldn't need to repeated if the step accepted a variable.
Currently, I've only created steps to account for Disk 0 and Disk 1, since we don't USUALLY have more than two disks in a machine, but it does happen, in which case this doesn't work at all. Essentially, the format and partition steps use a task sequence variable set by my menu that determine if they should run based on the selected disk number in the menu.
In my opinion, the most intuitive way to implement this would be to either allow %VARIABLE_NAME% input into the "Disk Number" field, or to allow a separate radio or to use combobox to specify a variable name to refer to for the disk number/index. Obviously it would require a valid input and should fail with an error code if the task sequence variable does not exist or is not a valid integer corresponding to disk that is present.
Normally in a scenario like this, I'd just write my own script to format and partition the disk instead of the built-in step, using my own variable to determine which disk to format, but the built-in step does a LOT more than it appears to do in terms of setting other required TS variables needed for other steps, from the "Apply Operating System" step, to the driver application steps to determine the location to stage the drivers and the OS version to choose drivers for.
I've tried isolating all of the variables that the built-in step creates but they're obviously subject to change with CM updates and I've seen it happen before so this is just too much maintenance.
Please let us know if this can be implemented, Microsoft.