I must admit MDT and SCCM works nice together, but it lacks some features like auto generating names(sequentially) and dynamically assigns clients to OU based on multiple criteria’s (at least what I know…)
What I’ve been struggling with the last days are to auto generate names to unknown computers being installed with a new Win7 image. I came across
http://www.deployvista.com/Home/tabid/36/EntryID/120/language/en-US/Default.aspx
Which solved my naming issue… Good work Johan Arwidmark:)
But I still had one issue left; the OU structure is more complex than just location or type. I need to put the computers in an OU structure based on location and type of client.
The OU structure is like this; OU=ComputerType,OU=Computers,OU=Location, DC=domain,DC=local.
To resolve this issue, I’ve expanded the stored procedure Johan created, and created an extra table to store the following info:
- Location – The name of you Location example: New York
- Gateway IP – The same as MDT. What Gateway identifies the New York location
- Shortname – The shortname of location for use in computername example: NY
- BaseOU – the OU string for this location: OU=Computers,OU=New York,OU=Locations,DC=domain,DC=local
To populate the information you want to use for generation, you have to use SQL Management Studio to add information to the table.
In addition you need to change the MachineObjectOU column in the MDT settings table to more than 50 characters. I used 255 since I know my OU paths aren’t longer than that. But in my case 50 characters are too short.
Based on the information above the stored procedure will create a computer name sequentially in the following format PCLOCATIONSEQUENCE, example PCNY00001. The computer account will also be created in the OU=Laptop,+
BaseOU or OU=Desktop,+
BaseOU or OU=VM,+
BaseOU based on the %islaptop%, %isdesktop% or %isvm% parameters in MDT.
To change the naming convention for the computer name, edit the stored procedure to change the order or add hyphens (-) for segmentation.
In the MDT/SCCM task sequence you need to use the %OSDDomainOUName% and not the %machineobjectOU%
I’m not a SQL guy, so the code might be a mess, but it’s working. I’ll try to rewrite the procedure to optimize the code. But I don’t know when it will be finished.
Download files here:
http://cid-214999a8ebe4fcb4.office.live.com/browse.aspx/.Public/SCCM
Run the scripts on you MDT database and add the following configure to your current Customsettings.ini:
[Settings]
Priority=IdentifyComputer, CSettings
[CSettings]
SQLServer=SERVERNAME
Database=MDTDATABASENAME
Netlib=DBNMPNTW
SQLShare=DeploymentShareProd$
Table=ComputerSettings
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR
[IdentifyComputer]
SQLServer=SERVERNAME
Database=MDTDATABASENAME
Netlib=DBNMPNTW
SQLShare=DeploymentShareProd$
StoredProcedure=IdentifyComputer
Parameters=MacAddress, DefaultGateway,Islaptop,IsDesktop,IsVM
ParameterCondition=And