# IServ-iPad-Helper ## Introduction The IServ-iPad-Helper makes your admin life easier by automating device creation and compilation assignment for Apple iPads (and perhaps other Apple devices). You just have to connect the iDevices to a lightning ethernet dongle and don't have to touch you computer, allowing you to focus on following the onscreen instructions required by the iPads. This can save you a lot of time when setting up iPads in bulk. ## Motivation My main motivation for writing this program was that IServ currently lacks the functionality of automating iDevice enrollment; all steps have to performed manually through the web interface and you often face long wait times, when a database modification is performed. This quickly gets tedious, especially because the mdm and the general device management are decoupled from another, requiring you to jump back and forth between the two. ## Prerequisites - Your iPads automatically receive an ip address with unrestricted internet access through a lightning wired ethernet adapter (note that this temporary ip address is overridden once the device is created) - You have a device filter that only returns devices you want to be edited and added to the compilation (usually "empty room" and keyword search for "iPad" should suffice) ## Workflow 0. Continously the server is queried for devices matching the specified device filter. 1. Once a device has been activated through Apple's servers, a device is added by the IServ mdm. This program detects the new device and assigns the next available ip address that was suggested, as well as a room to the device. 2. The device is added to the compilation (most likely you want a compilation that includes a WiFi profile) 3. The proposed mdm changes are confirmed ## Disclaimer While I can confirm that the program was fully working the last time I used it, I cannot guarantee that changes to IServ in the future will not break this program in the future or cause unintended side effects. Since IServ sadly does not provide a proper versioned API the only way to achieve this kind of functionality is through programatically using the same human-centered web GUI you would've used for the task. Further, the barebone HTML parsing employed is sensitive to change, because it merely looks for hard-coded strings in the response (proper XML parsing seemed overkill for this simple task and would require more work). Lastly, you should be aware that this program does not come with warranty and that you are responsible for your actions and any damage sustained.