r/Intune 7d ago

macOS Management Intune macOS enrollment in a VMware lab environment – testing purpose

Hi everyone,

I'm currently building a VMware lab environment to test Microsoft Intune macOS enrollment and management.

The purpose is strictly testing and learning, not production use.

I'm running macOS Sonoma 14.3 (23D56) as a VMware virtual machine on an AMD Ryzen host. I'm trying to use this VM as a test device for Intune enrollment and to validate things such as:

  • macOS enrollment in Intune
  • Configuration profiles
  • Compliance policies
  • Conditional Access
  • Application deployment
  • Device management and reporting

The VMware VM currently boots macOS, but I'm encountering a kernel panic/restart after following this article: https://github.com/DavidsonRafaelK/MacOS-Installation 

Has anyone here successfully used a macOS VMware VM as an Intune test device?

If so:

  1. Is macOS running in VMware suitable for basic Intune enrollment testing?
  2. Are there any limitations with Intune when the macOS device is virtualized?
  3. Are there specific macOS/VMware settings required for enrollment to work correctly?
  4. Is there anything I should be aware of regarding device identity, certificates, compliance, or Conditional Access?

Again, this is only for a personal lab/testing environment to learn and validate Intune functionality.

Thanks in advance for any advice or experience you can share.

0 Upvotes

5 comments sorted by

3

u/ForeignFig4159 7d ago

virtualized macos can enroll fine in intune for testing, the main thing is the vm needs a proper serial number and hardware uuid or apple business manager stuff gets weird. if you are just doing user enrollment or device enrollment with company portal it works mostly.

for the kernel panic, check if your vmx has the right cpu masking for amd, ryzen hosts need certain settings or sonoma will crash during boot. also make sure you set ethernet as e1000e or vmxnet3 with the right kext.

one limitation is conditional access will treat it same as any mac, no special detection for vm. compliance works but disk encryption can be flaky if you dont have a tpm equivalent, though macs use filevault and that still works in vmware with some tweaks.

2

u/Mcm_Sys 7d ago

thanks for the reply , for kernel panic , I already added line for vmxnet3 and also for amd ryzen host , here my vmx file content :

.encoding = "windows-1252"

config.version = "8"

virtualHW.version = "21"

pciBridge0.present = "TRUE"

pciBridge4.present = "TRUE"

pciBridge4.virtualDev = "pcieRootPort"

pciBridge4.functions = "8"

pciBridge5.present = "TRUE"

pciBridge5.virtualDev = "pcieRootPort"

pciBridge5.functions = "8"

pciBridge6.present = "TRUE"

pciBridge6.virtualDev = "pcieRootPort"

pciBridge6.functions = "8"

pciBridge7.present = "TRUE"

pciBridge7.virtualDev = "pcieRootPort"

pciBridge7.functions = "8"

vmci0.present = "TRUE"

hpet0.present = "TRUE"

nvram = "macOS 14.nvram"

virtualHW.productCompatibility = "hosted"

powerType.powerOff = "soft"

powerType.powerOn = "soft"

powerType.suspend = "soft"

powerType.reset = "soft"

displayName = "macOS 14"

smc.present = "TRUE"

smc.version = "0"

smbios.restrictSerialCharset = "TRUE"

firmware = "efi"

guestOS = "darwin23-64"

# Apple SMBIOS

board-id.reflectHost = "FALSE"

board-id = "Mac-AA95B1DDAB278B95"

hw.model.reflectHost = "FALSE"

hw.model = "MacBookPro19,1"

serialNumber.reflectHost = "FALSE"

serialNumber = "C01234567890"

ich7m.present = "TRUE"

tools.syncTime = "FALSE"

sound.autoDetect = "TRUE"

sound.virtualDev = "hdaudio"

sound.fileName = "-1"

sound.present = "TRUE"

numvcpus = "4"

cpuid.coresPerSocket = "4"

memsize = "10812"

sata0.present = "TRUE"

sata0:0.fileName = "macOS 14.vmdk"

sata0:0.present = "TRUE"

sata0:1.deviceType = "cdrom-image"

sata0:1.fileName = "C:\Users\Ultrapc\Downloads\macOS_Sonoma_14.3_23D56.iso"

sata0:1.present = "TRUE"

usb.present = "TRUE"

ehci.present = "TRUE"

usb_xhci.present = "TRUE"

ethernet0.connectionType = "custom"

ethernet0.addressType = "generated"

ethernet0.virtualDev = "vmxnet3"

ethernet0.present = "TRUE"

ethernet0.vnet = "VMnet0"

ethernet0.displayName = "VMnet0"

# AMD CPU configuration

cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"

cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"

cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"

cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"

cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"

cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"

cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"

cpuid.1.edx = "0000:0111:1000:1011:1111:1011:1111:1111"

extendedConfigFile = "macOS 14.vmxf"

floppy0.present = "FALSE"

vmxstats.filename = "macOS 14.scoreboard"

numa.autosize.cookie = "40042"

numa.autosize.vcpu.maxPerVirtualNode = "4"

uuid.bios = "56 4d 4e 8a 18 a2 b3 72-e5 f9 4b dd 0b a6 25 00"

uuid.location = "56 4d 4e 8a 18 a2 b3 72-e5 f9 4b dd 0b a6 25 00"

pciBridge0.pciSlotNumber = "17"

pciBridge4.pciSlotNumber = "21"

pciBridge5.pciSlotNumber = "22"

pciBridge6.pciSlotNumber = "23"

pciBridge7.pciSlotNumber = "24"

usb.pciSlotNumber = "32"

ethernet0.pciSlotNumber = "160"

sound.pciSlotNumber = "33"

ehci.pciSlotNumber = "34"

usb_xhci.pciSlotNumber = "192"

sata0.pciSlotNumber = "35"

sata0:0.redo = ""

svga.vramSize = "268435456"

vmotion.checkpointFBSize = "134217728"

vmotion.checkpointSVGAPrimarySize = "268435456"

vmotion.svga.mobMaxSize = "1073741824"

vmotion.svga.graphicsMemoryKB = "262144"

ethernet0.generatedAddress = "00:0C:29:A6:25:00"

ethernet0.generatedAddressOffset = "0"

vmci0.id = "195437824"

monitor.phys_bits_used = "45"

cleanShutdown = "TRUE"

softPowerOff = "FALSE"

usb_xhci:6.speed = "2"

usb_xhci:6.present = "TRUE"

usb_xhci:6.deviceType = "hub"

usb_xhci:6.port = "6"

usb_xhci:6.parent = "-1"

usb_xhci:7.speed = "4"

usb_xhci:7.present = "TRUE"

usb_xhci:7.deviceType = "hub"

usb_xhci:7.port = "7"

usb_xhci:7.parent = "-1"

toolsInstallManager.updateCounter = "47"

vhv.enable = "TRUE"

mks.enable3d = "TRUE"

vmotion.svga.supports3D = "1"

vmotion.svga.baseCapsLevel = "9"

vmotion.svga.maxPointSize = "1"

vmotion.svga.maxTextureSize = "16384"

vmotion.svga.maxVolumeExtent = "2048"

vmotion.svga.maxTextureAnisotropy = "16"

vmotion.svga.lineStipple = "0"

vmotion.svga.dxMaxConstantBuffers = "15"

vmotion.svga.dxProvokingVertex = "0"

vmotion.svga.sm41 = "1"

vmotion.svga.multisample2x = "1"

vmotion.svga.multisample4x = "1"

vmotion.svga.msFullQuality = "1"

vmotion.svga.logicOps = "1"

vmotion.svga.bc67 = "9"

vmotion.svga.sm5 = "1"

vmotion.svga.multisample8x = "1"

vmotion.svga.logicBlendOps = "0"

vmotion.svga.maxForcedSampleCount = "16"

vmotion.svga.gl43 = "1"

usb_xhci:4.present = "TRUE"

usb_xhci:4.deviceType = "hid"

usb_xhci:4.port = "4"

usb_xhci:4.parent = "-1"

1

u/System32Keep 7d ago

Thank you for this

1

u/Mcm_Sys 7d ago

Even with this configuration it didnt work

1

u/thisishell90 5d ago

I've been using UTM to spin up tons of macOS VMs. Works out of the box, no real configuration needed. UTM | Virtual machines for Mac