Skip to main content

Please create a Self Service app/web clip that allows user to update inventory from their device. 

Have you already submitted a feature request that you could link? People can upvote feature requests you submit to help draw attention to them.


 



 


You can also do this by creating a self-service policy leveraging the Files and Processes payload and setting a nice icon. Seems, like this will do exactly what you are asking but it is not a web click specifically.


Good Luck



  1. Policies

  2. User > Files and Processes

  3. put the jamf recon command in place

  4. Set it to self service 

  5. Set scope

  6. Set icon

  7. Save and test




  8.  

  9.  





@cgries A Policy that can be triggered via Self Service that has only a Maintenance payload with Update Inventory enabled does what you're asking so I'm not sure why a Feature Request would be necessary.


Hello,

We have something like this in our environment. I will paste what we have below and you can see if it might work for you. 
It is a Python script running on a Mac mini with a static IP and some ports forwarded to an A record on the firewall. It allows a web clip for both blank push and inventory on iPads. It could be created for Macs as well with some slight modifications.

Here is the script:

#!/usr/local/bin/python

from flask import Flask
import requests
import time

app = Flask(__name__)

jss_user = 'API CONNECTION USERNAME HERE'
jss_pass = 'API CONNECTION PASSWORD HERE'
jss_url = 'YOUR JAMF URL HERE'
logo_url = 'YOUR APP LOGO HERE'
logo_width = '40%'
text_color = 'color:#002664'

@app.route("/")
def hello():
return "JSS Remote Commands Utility"

@app.route('/update/<id>')
def update_inventory(id):
url = jss_url+'/JSSResource/mobiledevicecommands/command/UpdateInventory/id/' + id
r = requests.post(url, auth=(jss_user,jss_pass), verify=True)
return "<html><body><center><br/><br/><img src="+logo_url+" width="+logo_width+"><h1 style="+text_color+">Update Inventory Request Sent</h1><br/><h2 style="+text_color+">The inventory process may take up to 5 minutes.<br/>You may return to the Home Screen at this time, but do not lock this iPad.</h2></center></body></html>"

@app.route('/push/<id>')
def blank_push(id):
url = jss_url+'/JSSResource/mobiledevicecommands/command/BlankPush/id/' + id
r = requests.post(url, auth=(jss_user,jss_pass), verify=True)
return "<html><body><center><br/><br/><img src="+logo_url+" width="+logo_width+"><h1 style="+text_color+">Blank Push Request Sent</h1><br/><h2 style="+text_color+">Any pending commands for this device will be received within 5 minutes.<br/>You may return to the Home Screen at this time, but do not lock this iPad.</h2></center></body></html>"

if __name__ == "__main__":
app.run(host='0.0.0.0', port=8000, debug=False)

Here is the JAMF side of things:
http://YourARecordHere:YourPortHere/update/$JSSID


Here is the firewall information:

We have a firewall rule that says from any source pointing to the A record, send it to the local IP and ONLY allow the service "python". This is with a Fortigate so your usage may be different.

Hope this helps!

Reply