Skip to main content

Hi all,



Like many, I wanted my very own enrollment screen like the one IBM showed at the JNUC. I threw something together that works very similarly. This is a native app written in swift. I did try and make it easily editable for anyone to use and customize without knowing how to code. Here's the repo...I'll be updating and adding things as time goes on and cleaning it up.



You'll need to supply a html based page with your site specific information and then specify where 4 different packages land in the installation so the progress bar can display accurate information.



https://github.com/jason-tratta/ProgressScreen

@loceee Oh man, I had looked at that but wasn't sure where the flags needed to be entered. I didn't realize it was the exact thing I was looking for. Thanks for the heads up.


@loceee Is that helper script working reliably for you? For me, it's failing to change the html loaded in about 75% of the time. That forces it to stop before it sets the build time, quit button, fullscreen, etc. It always fails in the exact same way, but it doesn't always fail. I think it'd be less frustrating if it was consistent one way or the other. The path to the replacement html is /PS/index.html. Here's the error that pops up most of the time:



Running script COE - Progress Screen Helper...
Script exit code: 1
Script result: 32:89: execution error: An error of type -10810 has occurred. (-10810)
Traceback (most recent call last):
File "/Library/Application Support/JAMF/tmp/COE - Progress Screen Helper", line 145, in
main()
File "/Library/Application Support/JAMF/tmp/COE - Progress Screen Helper", line 105, in main
subprocess.check_output(osa_full_command)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 573, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['osascript', '-e', 'tell application "ProgressScreen"', '-e', 'set htmlURL of every configuration to "/PS/index.html"', '-e', 'end tell']' returned non-zero exit status 1
Error running script: return code was 1.


It should be noted that when everything is run outside of enrollment, it works perfectly 100% of the time. It only has these errors if it is run at enrollment.


Hi Guys,



I know this is not the right forum, but i thought maybe someone here may know



Is there any program that does roughly the same thing on the window platform ?



The ability to display progress and feedback for deployment ?



Thank


Found your GitHub a while back and have been using Progresscreen for our DEP deploy since. Thank you for a really nice share.


I managed to resolve my issue. For whatever reason, the progressScreenHelper.py file would not run correctly if run through JAMF. If I had to guess, I'd say this is because JAMF uses the System user when pushing things.



To resolve this, I included the progressScreenHelper.py script in the package that places all the needed files and added a postinstall shell script to launch it as the currently logged in user. It looks like this:



#!/bin/sh
## postinstall

# Finds the current user's account
currentuser=$(/bin/ls -la /dev/console | /usr/bin/cut -d ' ' -f 4)

# Runs the script as that user.
su -l $currentuser -c "python /PS/progressScreenHelper.py --start /PS/index.html --fullscreen --hidequit --buildtime 3600"


exit 0 ## Success
exit 1 ## Failure


In my testing, this way of launching things works every time while leaving it to run as System failed more than 60% of the time.


Strange that's not he behaviour I have been seeing. I'll be honest though I am not using it in production, and I am evaluating which way I will head for our DEP prod rollout.



If this is behaviour others are seeing it might be worthwhile making the script itself do the OSA calls as the current user to alleviate your workaround. Come to think of it it's probably better practice anyway... but I was thinking that we may even be able to drop it over the loginwindow in some cases (software update runs etc).


@jtratta Would you mind sharing the Muse project file which had your template from the screenshot in your enrollment app on GitHub?


@HauRuck83 Unfortunately, that project is long gone. The generated files are in the Github project, in the htmlFiles folder. I think you can open that in Muse.


Hey @gavin.pardoe ,
stumbled on your app and looks really good! Nice job!
I'd need to do some modification (already edited the Department section). Would it possible to change the Asset Tag with the Serial Number, gathering the info from bash?
Thank you!


Sorry to resurrect an old thread but I have some questions about this.
I've recently become interested in doing this and started implementing my own solution.
How are you running the app at the loginwindow? I assume it's with a pre-login launchdaemon. As such, I've found the Apple example for that and started looking through it, but it's not answering my questions. For instance, I'm not finding a plist example for the launchdaemon in there.



Second, I know you have to set the "canBecomeVisibleWithoutLogin" value in the application but I'm not sure where.
I'm assuming it will be in appDelegate (swift), but I need an outlet to an NSWindow which I can't seem to make.
I am using the Storyboard instead of a xib file. Apple's example has a xib file with a panel that they make the connection to, then call that on the panel. How would I do the equivalent with the storyboard?
I feel like I need to somehow get the appdelegate's root controller and do it there.



Thanks for any and all info you can provide!


IBM Posted their app, have a look!



https://github.com/IBM/mac-ibm-enrollment-app


Sorry to bring up an old dead thread but has anyone tried this with Mojave, specifically with dark mode? I noticed when in Dark mode, it doesn't show everything compared to in light mode. can't seem to figure how to fix/resolve this. Any help would be appreciated!