petec
New Member
Posts: 10
|
Post by petec on Jul 21, 2018 14:59:36 GMT
Hi everyone.
I'm fairly new to MDT and UI++ but have been using Config Manager for the last 6 years. My old way to build images was on an Oracle VirtualBox VM, use GHOST to capture and deploy, then use a custom set of batch, VM, and PowerShell scripts to prompt the tech for info (user name, location, PO, asset tag, and so on) and then it renames the workstation, joins the domain, logs in as the user, configures Outlook, and several other boring tasks.
Over the last 6 weeks or so, I've started to build my Windows 10 1803 images in Hyper-V (using a standalone MDT config) and then use a MDT-integrated Config Mgr CB (1802) Task Sequence to deploy them. These are primarily new computers directly from the manufacturer. We also do PC wipes and reloads on existing systems as needed.
I'm envisioning using UI++ to prompt the tech to enter some user-specific info after booting up in WinPE (CM TS media) and then allow the TS to download, build, and configure the system. Most of those UI++ menus are already built and work just fine so far.
Finally, here's the issue that I'm trying to get past. In the UI++.xml, I have my OU variable dynamically created based on a question that is answered by the tech. I have it display on a summary screen for now so that I know the TSVar is created properly.
<Action Type="TSVar" Name="OSDDomainOUName">LDAP://OU=Workstations,OU=Managed,OU=%MyLocation%,DC=corp,DC=local</Action> I'm having trouble implementing this on the Config Mgr TS side. I've seen posts where it has been suggested to create multiple "apply network settings" TS and assign it based on a variable (like MyLocation in the code above). That seems to be too involved and not as clean as it should be as I have about 20 OU's based on different offices around the globe.
Since I have the exact OU stored in the "OSDDomainOUName" variable, what's the best way to join the domain and place the computer account directly into this OU?
Thanks!
|
|
|
Post by Jason on Jul 22, 2018 18:36:03 GMT
> "I'm fairly new to MDT and UI++ but have been using Config Manager for the last 6 years. My old way to build images was on an OracleBox VM, use GHOST to capture and deploy, then use a custom set of batch, VM, and PowerShell scripts to prompt the tech for info (user name, location, PO, asset tag, and so on) and then it renames the workstation, joins the domain, logs in as the user, configures Outlook, and several other boring tasks."
Oh, my! That's like going from mowing the lawn with a pair of scissors to a riding lawn mower. I'm glad you've seen the light.
> "I've seen posts where it has been suggested to create multiple "apply network settings"
There's no reason for this. Variables set in the task sequence editor at design time are overwritten by those set during the TS at runtime.
Based on your description, there's nothing more for you to do. As long as UI++ runs before the Apply Network Settings task, the value will be used by the task and set in the unattend.xml for use during Windows Setup.
|
|
petec
New Member
Posts: 10
|
Post by petec on Jul 22, 2018 19:59:53 GMT
> "I've seen posts where it has been suggested to create multiple "apply network settings" There's no reason for this. Variables set in the task sequence editor at design time are overwritten by those set during the TS at runtime. Based on your description, there's nothing more for you to do. As long as UI++ runs before the Apply Network Settings task, the value will be used by the task and set in the unattend.xml for use during Windows Setup. Thanks for the quick reply Jason! I thought it should be that simple. I think I just figured it out. Looking at my OU structure in my post, I have "workstations" and "managed" listed backward. I'm going to correct this now and try again. I guess looking at this for hours yesterday, I likely missed the simple solution. Just to be sure, I should leave my OU field blank/empty in the "Apply Network Settings" and make sure there's nothing in my CustomSettings.ini file that overwrites it, correct?
|
|
|
Post by Jason on Jul 23, 2018 14:01:14 GMT
What's in the Apply Network Settings task in the console doesn't matter really as this will be overwritten by the value set during TS execution. As for CS.ini, that depends on where in the TS your Gather processes runs relative to UI++ but to avoid confusion, yes, this should not be set in cs.ini.
|
|
petec
New Member
Posts: 10
|
Post by petec on Jul 31, 2018 23:33:27 GMT
I meant to reply earlier... Thank you Jason!
|
|
vips
New Member
Posts: 2
|
Post by vips on Feb 7, 2019 15:56:25 GMT
Hi Jason, Sorry replying to an old post.
I have recently looked into different Frontend OSDs and chose UI++ with its slick look and customizing.
I have customized the config to fit and still deleting adding parts to it, but I am having problem where machine is getting joined to domain however not going to the correct OU.
So like many folks, I am a noob at coding. I am switching some portions of my SCCM TS to UI++ such as Time Zone, OU selection and so, rest at the moment installation of drivers, applications are all within TS (Native TS, not MDT).
Here is my basic code for UI++ that I am looking help with, it doesn't put Computer in the right OU.
<Action Type="Input" Name="ClientSetupInput" Title="Client Setup" ShowBack="True"> <TextInput Prompt="Computer Name" ADValidate="True" Hint="Enter the name for this system" RegEx="[^\"/\\\[\]:;\|=,\+\*\?><]{3,15}" Variable="ZZComputerName" Question="Name for this system" /> <ChoiceInput Variable="MyLocation" Question="Please choose a final location for this computer" Required="True" > <Choice Option="East" Value="TimeZoneEast"/> <Choice Option="West" Value="TimeZoneWest"/> <Choice Option="Central" Value="TimeZoneCentral"/> </ChoiceInput> </Action> <Action Type="Input" Name="ComputerOUChoice" Title="AD Organizational Unit" ShowBack="True"> <ChoiceInput Variable="OUChoice" Sort="False" Question="Please choose an AD OU for this system" Required="True" AutoComplete="False"> <Choice Option="Non-Retail - Laptop" Value="Laptops" /> <Choice Option="Non-Retail - Desktop" Value="Desktops" /> <Choice Option="Call Centre" Value="Call Centre" /> <Choice Option="Unknown" Value="Computers" /> </ChoiceInput> </Action>
Then calling the action
<Action Type="TSVar" Name="OSDTimezone" Condition='"%MyLocation%" = "TimeZoneEast"'>Eastern Standard Time</Action> <Action Type="TSVar" Name="OSDTimezone" Condition='"%MyLocation%" = "TimeZoneWest"'>Pacific Standard Time</Action> <Action Type="TSVar" Name="OSDTimezone" Condition='"%MyLocation%" = "TimeZoneCentral"'>Central Standard Time</Action> <Action Type="TSVar" Name="OSDDomainOUName" >LDAP://OU=%OUChoice%.......DC=com</Action> <Action Type="TSVar" Name="OSDDomainOUName" Condition='"%OUChoice%" = "Call Centre"'>LDAP://OU=Call Centre.......DC=com</Action> <Action Type="TSVar" Name="OSDDomainOUName" Condition='"%OUChoice%" = "Computers"'>LDAP://OU=Computers.......DC=com</Action> <Action Type="Info" Title="System Name" Name="SystemName"><![CDATA[The name of this system will be <b>%ZZComputerName%</b>. It will be placed in the OU at <b>%OSDDomainOUName%</b> and will be set to the <b>%OSDTimezone%</b> timezone.]]></Action>
Note - LDAP://OU=%OUChoice%.......DC=com in above, is truncated, I am using full OU length.
The Native TS is applied to Testing Collection, and the Testing Collection doesn't have any variable set, its empty. The Task with TS to join to domain is - "Join Domain" with OU left empty.
I had set Option If Condition set (Task Sequence Variable OSDDomainOUName exists OR Task Sequence Variable OUChoice exists) but I tested with both with condition and without but none working. This happens if I use condition: Monitoring the imaging it says "The task sequence execution engine skipped an action because the condition was evaluated to be false.
Attached is the Native TS I have.
So...what am I doing wrong in above?
Attachments:
|
|
|
Post by Stuart on Feb 8, 2019 12:50:24 GMT
Does the UI++ log contain anything where it tried to set your OSDDomainOUName TS variable? Once you figure out why it didn't set the variable, you'll need to put your %OSDDomainOUName% variable in the OU field in the Join Domain step.
|
|
vips
New Member
Posts: 2
|
Post by vips on Feb 8, 2019 14:27:48 GMT
I resolved this last night. Yes I went looking into the log file, it was setting OSDDomainOUName correctly but not passing to TS. Then I checked the "Apply Network Settings" and "Join Domain" TS Variables. In my case I am using "Join Domain", whereas "OSDDomainOUName" is applicable to "Apply Network Settings" only. "Join Domain or Workgroup" TS step requires a different variable which is "OSDJoinDomainOUName". I changed my variable in XML file to this and it worked.
|
|