IIRC, OpenStack puts userdata for Hyper-V guest VMs on a separate volume. The guest can mount the volume and extract the data.
However, I suggest we use Hyper-V's KVP Data Exchange mechanism instead. Doing so keeps volume management and passing userdata cleanly separated. Feature Spec at https://cwiki.apache.org/confluence/display/CLOUDSTACK/Userdata+Support+for+Hyper-V+with+KVP+Data+Exchange