Automating Chromebook setup/enrollment for mass deployment

Automating Chromebook setup/enrollment for mass deployment

At our K-12 district, we were trying to find a way to automate the process of setting up the wifi, agreeing to the EULA, enrolling and shutting down the Chromebooks. It doesn’t take a ton of time on a single Chromebook, but when you’re setting up 1,000+….it can be a tedious task.

I setup a script with the USB Rubber Ducky:
USB Rubber Ducky Deluxe

The script works by emulating key strokes. The script we’re using currently will setup our hidden wifi SSID, agree to the EULA, switch from sign on to enrollment, then sign in with our enrollment credentials. Once enrolled, it will shut down. This allows us to setup 20 at a time, and by the time we plug in a rubber ducky to the last one, the first one is done.

The script has some extra ‘delays’ in it, which is why it sits for a few seconds at times doing nothing. This is to ensure that it has a valid wifi connection, in case getting DHCP took a bit longer. I’m still testing the perfect timing, so I’ll probably lower the delay times and make this faster.


Here’s an issue – chromebooks should be identical to each other in terms of OS and initial setup. However, manufacturers and vendors are shipping old chromebooks that have been sitting on the shelves for months, and the OS it out of date. We had problems with some chromebooks not completing successfully (would say no internet connection, when there obviously was). Here is what we do now, and this works 100% of the time:

We created a USB restore stick using the Chromebook USB restore extension/tool. It will put the latest OS on a flash drive for us (just a regular drive), and we would use that to restore the chromebooks to the latest version.

Our process now – requires an extra step, but we think it’s great since they are on the latest version immediately, instead of us waiting for the end users to login, and our policies to slowly push the updates down. It ensures that every single Chromebook you setup and pass out to users will be up-to-date, and on the same version. It also eliminates the stupid internet connection issue that we were seeing:

  • Insert restore USB into chromebook. Hit ESC+REFRESH+POWER at the same time.
  • Machine will power on and boot into restore mode. Insert the USB drive when it prompts.
  • After about 3-5 minutes, it will restore to the latest OS, and ask you remove the drive – which it will then auto-reboot.
  • It will go to the setup screen like usual.
  • Insert rubber ducky and let it do magic.
Yes, it’s an extra step, but if you setup 10-20 Chromebooks in a row, have a bunch of rubber duckies and USB restore drives, you can start on one, and by the time you get down to the last one, the first is ready to finish up.
The code below may or may not work 100% depending on the Chrome OS version your Chromebooks are running. Google changes code quite often, and any slight change in GUI, timing, user interaction requirements, etc., may require the code to be changed. Best practice is to restore a Chromebook to the latest OS version, get it working, then restore all Chromebooks to the same version before enrolling.
  • Copy the code from this Pastebin page into Notepad or another text editor:
  • Replace “yourssidhere” with your SSID name. Do not use quotes.
  • Replace “yourSSIDpasswordhere” with your wireless password.
  • Replace “” with the email address that you use to enroll chromebooks.
  • Replace “your enrollment password” with the password to the account in step 4.
  • Copy all of the code and go to this website:
  • Paste in your code, and generate the “inject.bin” file.
  • Save the “inject.bin” file to your Rubber Ducky.
  • Power on your chromebook and wait for it to get to the main screen.
  • Stick in your Rubber Ducky, and it should start working.



Share this Story:
  • facebook
  • twitter
  • gplus

About admin


  1. Justin Schlueter
    1425 days ago

    Is there a way to do this with a regular flash drive or do you need to have a Rubby Ducky flash drive in order to make this work?

    • admin
      923 days ago

      You need a rubber ducky to get this to work. A regular flash drive won’t do anything.

  2. JD
    1411 days ago


    It looks like the 3 button combo is not working for some reason. Any ideas? (ex. ALT SHIFT S)


    • admin
      923 days ago

      I think ChromeOS was updated, causing issues. Code has been updated to work with newer OS versions.

  3. Daniel De Luca
    1013 days ago

    each user has own username and or PW when they login to chrome, bif i use admin login for enrolment will that be kept or can we change sript to remove wifi login after enrolment is comeplete?

    • admin
      923 days ago

      You just login once as admin to enroll. You may have to remove the SSID after enrollment if you don’t want users on it.

  4. Jeff
    1001 days ago

    How do you handle the string for the SSID when the SSID has a space in it. For example SSID = MY Wifi

    • admin
      923 days ago

      Should be able to type it as it. I believe it should enter the spaces automatically.

  5. Peter Iles
    1001 days ago

    As far as you know, does this still work?

    • admin
      923 days ago

      It should as of Sumemr 2016. May need to adjust it a bit depending on the OS version.

  6. Brad
    823 days ago

    Go Box Chrome automates Chromebook setup/enrollment (commonly called White Glove) for mass deployments. It also automates the Force-Wipe process. All of the product info is at:

    • admin
      734 days ago

      Interesting equipment, but it’s also $1200 plus annual fees for only 2 devices. I’m guessing the company makes a script similar to the one above, that is proven to work with a specific OS version, to ensure the keystrokes work correctly. It’s a dumbed down version of the rubber ducky – which is fine – but this is a lot cheaper, and with a little effort, will be a one time purchase forever.

  7. Craig
    657 days ago

    Anybody run in to an issue with the @ symbol? The password we use for our wifi has an @ in it. When I generate the script for this, it makes the @ symbol a ” symbol.

  8. Craig
    656 days ago

    Nevermind, figured out that when using Payload Encoder on, the language was set to GB instead of United States.

Leave a comment