Uncategorized

Creating a DEP VM using Parallels Desktop

Not sure who made the decision, but at some point in the past, my org decided to standardize on Parallels Desktop instead of VMware Fusion. Overall this is fine, but I have found Parallels struggles a bit more with testing things like preboot stuff, such as FileVault. The other thing that Parallels (or really the community) is lacking is guides and tools for MacAdmin tasks using Parallels. Most admins I’ve seen, or guides I’ve found, use VMware Fusion for their macOS VM testing. Since I don’t have a license for that, but have Parallels at my disposal, that’s what we had to make work.

We have just recently started acquiring DEP-enrolled Macs, and with that, wanted to put to test our planned workflow for provisioning a new machine. I knew other admins tested DEP with VMs as I’d seen chatter about it on Twitter and the MacAdmins Slack. But I’d be lying to say that I knew how to create a DEP VM, and thus we were using a physical device and just wiping it… repeatedly. After about the 10th wipe, and literally a full day of (barely) testing, we came to the conclusion:

“There has to be a better way!”

Based on a few guides I found online, and particularly this straightforward one by Ross Derewianko, I realized it should be quite easy, just set the VM’s Serial Number and Hardware Model.

To jump straight to the instructions, see the Creating the VM.

Setting the Device Hardware Model

A Parallels’ VM config file is slightly different than VMware Fusion’s, and we aren’t able to set the hardware model in the config.pvs file like you can in Fusion’s .vmx file. In order to set the hardware model, we have to set a “boot flag” in the VM’s settings. The key for this flag is:

devices.mac_hw_model="MODEL_GOES_HERE"

An example of this would be:

devices.mac_hw_model="MacBookPro14,2"

Setting the Device Serial Number

The config.pvs method

Unlike the Hardware Model, you can set the Serial Number in the config.pvs file. This file is located within the VM, so you have to find the VM location (normally under ~/Parallels/VM_NAME.pvm/). Right-click the VM and choose “Show Package Contents” and then open the config.pvs file into your desired text editor. The “SerialNumber” key is within the “General” key.
Screen Shot 2018-02-09 at 1.08.29 PM.png

The boot flag method

You can also set the Serial Number via a boot flag, similar to setting the hardware model. The key for this flag is:

devices.smbios.serial="DEP_SERIAL_NUMBER"

Creating the VM

Unlike some of the instructions I saw for Fusion, I was not able to change the settings of a pre-existing Parallels VM to make it into a DEP-enrolled VM. Therefore, the instructions below are how to create a new VM with the Serial Number and Hardware Model set to spoof a DEP device. NOTE: You will need a downloaded copy of a macOS Installer on your device before proceeding.

  1. Begin by opening Parallels Desktop and choose to create a new VM
  2. Choose the Install Windows or another OS from a DVD or image file
    Screen Shot 2018-02-09 at 12.29.03 PM.png
  3.  Choose the macOS installer you downloaded previously.
    Screen Shot 2018-02-09 at 12.30.34 PM.png
  4. Continue through the prompts to create a bootable disk image file, and choose where to save it on your device.
    Screen Shot 2018-02-09 at 12.31.38 PM.png
  5. In the Name and Location window, be sure to check the box at the bottom that says Customize settings before installation. This is crucial, as this is how we’ll set the boot flags mentioned above before the machine is ever provisioned
    Screen Shot 2018-02-09 at 12.39.43 PM.png
  6. Once the VM Configuration screen appears, change the Hardware tab and select the Boot Order option.
    Screen Shot 2018-02-09 at 12.40.33 PM.png
  7. Expand the Advanced Settings and in the Boot flags text box, enter the necessary pieces as documented above. For example:
    devices.smbios.serial="C02VG123456"
    devices.mac_hw_model="MacBookPro14,2"
    

    Screen Shot 2018-02-09 at 12.41.53 PM.png

  8. You can now close the Configuration window and Continue provisioning the VM.

Voilà!

After successfully setting the two required DEP pieces, if we boot our VM we should see it bring us to the “Remote Management” screen!
Screen Shot 2018-02-08 at 5.15.04 PM.png

7 thoughts on “Creating a DEP VM using Parallels Desktop

  1. Followed your instructions and got a DEP-enabled VM, but I’m having a hard time reverting my VM to test re-enrollment. I have a snapshot that I took right as the OS install completed and it was rebooting, but it will not prompt for DEP-enrollment now no matter what I do. I have tried to revert to that snapshot and then “reset” from Actions menu, and that doesn’t help either. Any other advice you can give on that? Thanks for the instructions!

    Like

    1. Hey Dan, did you snapshot _before_ setting the serial number in the boot options? If so, that setting gets wiped out at revert. I typically shut the VM down right after the OS install finishes, set the serial number, and then snapshot. If that’s what happened, you just want to revert to your snapshot, set the serial, and take a new snapshot.

      Like

      1. hey, thanks for the reply. I set the serial in the initial customization before installing the OS, so I don’t think it was getting wiped out, but I can’t confirm. I had to start over completely so I’ll check those boot flags next time I need to revert.

        Like

  2. Hey, I’m looking to do this, and have a number of “in use” devices that have been through DEP. My question is what happens to the “real” device when you spoof its serial for the test vm? Can I pick one thats in use or will it affect the real device in some way?

    Like

    1. Hey James, I don’t think from the Apple/DEP side there is an issue, since a real device could re-enroll to DEP over and over again. Where you may run into an issue is with your MDM if it uses Serial Numbers as the unique identifier of a device, you might have an issue where now two records are using the same serial. My best answer would probably be to just test with a dummy/test real machine and a DEP VM, and see if you come across and oddities.

      Like

Leave a comment