Monday, May 16, 2016

VMWare Tools and Drivers in Task Sequence

Overview


I have many virtual systems in my environment. Most running the VMWare Hypervisor in ESXi, Workstation, Horizon View etc. I've mandated as my firm's EUC (End User Computing) Architect that it all sources back to OSD in ConfigMgr. To make this easier I packaged up the VMWare Tools as well as handle drivers (VMXNET3 anyone?).

Life is easier now as VMWare has de-coupled the Tools from Workstation or ESXi and can be downloaded directly. They have released several already since doing so and are on 10.0.8 as of this writing.


Application

After grabbing the ISO from VMWare, extract it and upgrade/install a VM with it. Once that is done setup an application within ConfigMgr however your policy is. For me we use supercedence so older ones are present as well.

With two deployment types. One for 32-Bit and one for 64-Bit.
64-Bit
 setup64.exe /s /v/qn ADDLOCAL=ALL REBOOT=ReallySuppress  
32-Bit
 setup.exe /s /v/qn ADDLOCAL=ALL REBOOT=ReallySuppress   
For the detection method just use the MSI GUID.  You can find this via many methods such as in the VM via the registry at HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. This also is what becomes the Uninstall program. For 10.0.8 it is
 {F4B2C3ED-A9F2-4B8B-92C8-2688CCF15D02}  
which would make the uninstall program for both 32-Bit and 64-Bit
 MsiExec.exe /x {F4B2C3ED-A9F2-4B8B-92C8-2688CCF15D02} /qn /norestart  
On the requirements tab you can use something like a custom  'Computer Model' = VMWare Virtual Platform' and built-in Operating System equals whats applicable such as 'All Windows 7 (64-Bit)'.


You can advertise this to all systems in your fleet as available or required as well as use in an OSD Task Sequence. Whatever you want.


I wish there was a way within the VM to determine which platform its one. Workstation, View, ESXi. This would make targeting apps to a collection easier. It may make sense to update Workstation with the latest, but keep the ESXi ones on what's provided with it for example.



Drivers

So how do we get the drivers into SCCM? Real easy actually. Go to your VM and look in 
%PROGRAMFILES%\Common Files\VMware\Drivers. Take the contents of this folder and put them into a driver package, or however, you do drivers. Then add as a step to an OSD. Like any other driver package, do a WMI query for the model (VMWare Virtual Platform) or manufacturer (VMWare, Inc.). I talked about how I handle drivers here.

For the driver package note that the contents of this folder are different for W7 (Server 2008 R2) and down vs Windows 8 (Server 2012) and up. One driver, the mouse driver is different. I have two packages as I have not fully vetted a merged one. PNPID and version should handle it in one package but I have not tested in all instances yet. With DP's deduping it's not a big deal actually.


Bonus

I will try to keep track of the GUIDs for all the versions and post them here as they come out. If you have older ones please pass them on and I will include them. Note I am only doing the 64-Bit ones below after about 10.2.0 when they split.

 12.4.0 -  {55F0F698-8B00-40BF-8583-A16452EC3FF9}
 12.3.5 -  {27B78D8E-F8B9-4AF5-BF9C-8DDD583EAB6B}
 12.3.0 -  {AF174E64-22CF-4386-A9EC-73F285739998}
 12.2.0 -  {A14655C8-5589-4CF6-BCDE-DFFB9A9BF17C}
 12.1.5 -  {65A35679-0C08-4C9A-9AC3-46417F198653}
 12.1.0 -  {A3631D35-CFA5-45F6-A65E-DAFA81C4CBE6}
 12.0.6 -  {CB7FFC88-0CB2-48DD-9D7A-089D216607F8}
 12.0.5 -  {B6018ED0-EF9F-4432-A755-9029562DD15E}
 12.0.0 -  {AC968A64-CCC0-4916-A426-BA05F38AC28B}
 11.3.5 -  {1FF5D624-5515-4343-837A-E54C101573E6}
 11.3.0 -  {4FE02FF2-2194-4E1D-8B04-F934655966F9}
 11.2.6 -  {E6E6404B-1F59-4EAB-A1B9-EA1A33B71159}
 11.2.0 -  {61ABD5FF-2D98-4C4A-9E36-187C882317CB}
 11.1.0 -  {4FE2D79D-BB1C-4F45-BDBC-192D37C3AE40}
 11.0.6 -  {D533345C-7F8D-4807-AE80-E06CE2045B0E}
 11.0.5 -  {25932044-BBC8-444F-ACF4-7E508054FA12}
 11.0.1 -  {742FCBAF-EE5D-48B2-9E95-DA0513B79570}
 11.0.0 -  {7B09CBED-1199-4BA3-9948-A28DB7C9C396}
 10.3.10 - {01767101-A688-4A95-9C83-6DED9EB6735D}
 10.3.5 -  {F32C4E7B-2BF8-4788-8408-824C6896E1BB}
 10.3.0 -  {1D92E489-0CFA-4F37-AC54-BD5EB372A2D4}
 10.2.5 -  {6D158FDD-2E20-4C54-A271-4D2CE2C39905}
 10.2.1 -  {092CAFE8-7A43-4C32-82C6-A5547F93417F}
 10.2.0 -  {766355C9-1851-4890-9C1F-9F043A43AFCE}
 10.1.15 - {7CFC363A-72CE-409C-97C2-E497A1D831FC}
 10.1.10 - {EEAD1455-1743-4746-8AEA-C1956133B736}
 10.1.7 -  {45147181-CF69-4C8C-81CB-0FC96F170758}
 10.1.5 -  {30B36D27-24D7-4C18-996D-9A23B9235707}
 10.1.0 -  {507F5BFC-6DFE-43CF-A552-DABE868FCDFE}
 10.0.12 - {FC5F4DCF-B54A-435E-8B0D-737BB373ED69} (XP/Server 2003 Only)
 10.0.9 -  {7595A850-FE4D-4273-84FA-9CC1068AFF7A}
 10.0.8 -  {F4B2C3ED-A9F2-4B8B-92C8-2688CCF15D02} 
 10.0.6 -  {ECD203D2-312B-4EC7-9D55-778A81C6BDE9}
 10.0.5 -  {0C69DF99-B17A-4490-910B-64811AEA2F48}  


-Kevin

10 comments:

  1. ever do an MDT with these drivers that works with the paravirtual scsi driver? I'm having an issue with doing it with windows 10? Keeps bluescreening and not being able to see the drive on the reboot phase...

    ReplyDelete
    Replies
    1. I've done this in MDT as well as ConfigMgr. Get the drivers and put in a package then use selection profile to apply them. You could also just put them in an app and use DISM to inject them.

      Delete
  2. The GUIDS I find are not these. I see are:
    5541DAEE34716474A8AE1C5916337B63
    058A5957D4EF372448AFC91C60A8FFA7
    4E87A051AB6A5AF4EB512D4CBAE5A0AA
    72D63B037D4281C499D6A9329B327570

    These are ver 10.x.x. I don't have the versions now but I will update this shortly once I get my SCCM report information.

    ReplyDelete
    Replies
    1. I wonder if my discrepancy is related to running the 64 bit tools verses running the 32/64 all in version of the tools.

      Delete
  3. Greg, I goto the VMWare FTP site and drill to the version and grab the ISO then extract it. From there I run setup64.exe or setup.exe for the arch.

    I downloaded the X64 file for 10.2.0 and it hashed the same as the setup64.exe from the 10.2.0 ISO. So I am curious what you find.

    ReplyDelete
  4. Michael, how are you injecting the drivers? In SCCM I just use dism vs the driver store. In MDT I would use a profile for it. If I get some free time I will try to reproduce.

    ReplyDelete
  5. GUID for 10.3.5 x64:
    {F32C4E7B-2BF8-4788-8408-824C6896E1BB}

    Been having problems with 10.2.0 still requesting a reboot when installed during an OSD TS. Wondering if its related to the MS Visual C++ 2017 redistributable dependency. Thought I'd update to 10.3.5 while I'm trying to figure it out.

    ReplyDelete
  6. Thanks mmseng. I added it to the posting.

    ReplyDelete
  7. GUID for 11.1.0 x64:
    {4FE2D79D-BB1C-4F45-BDBC-192D37C3AE40}

    ReplyDelete
  8. GUID for 12.2.0 x64:
    {A14655C8-5589-4CF6-BCDE-DFFB9A9BF17C}

    ReplyDelete