Skip to main content

Hello Jamf Nation,

 

For security reasons at my org, we are trying to compile a list of installed extension for the Chrome, Firefox and Safari browsers. 

 

I've seen a couple posts about chrome extensions and have a script for just Chrome. Does anyone know of a good script that can pull extensions from all three? 

I've been working on something similar -- extensions/add-ons are an underrated thing to be checking! I don't have a comprehensive script for all three, but I have an EA  for Firefox extensions based on this one for Chrome. Safari is next.


I've been working on something similar -- extensions/add-ons are an underrated thing to be checking! I don't have a comprehensive script for all three, but I have an EA  for Firefox extensions based on this one for Chrome. Safari is next.


Hey @dmortensen,

 

These are awesome! Thank you so much. Going to test these out. Looking forward to the Safari one!


Hey @dmortensen,

 

These are awesome! Thank you so much. Going to test these out. Looking forward to the Safari one!


Hey @dmortensen,

 

Can you inform me of how you have these setup in your JAMF instance? Currently can't get these two to run correctly and not sure if I'm doing something wrong or not. Set them up in EA's and i'm trying to generate a downloadable csv report but doesn't seem to be working.


Hey @dmortensen,

 

These are awesome! Thank you so much. Going to test these out. Looking forward to the Safari one!


Sure! I've structured these and run them as Extension Attributes, so assuming you use them the same way, you could create an Advanced Search (looking for All Managed Devices, for example) that displays those fields, then download the CSV report.

Here's my modified Chrome EA for python3 in case that's helpful.


Sure! I've structured these and run them as Extension Attributes, so assuming you use them the same way, you could create an Advanced Search (looking for All Managed Devices, for example) that displays those fields, then download the CSV report.

Here's my modified Chrome EA for python3 in case that's helpful.


Gotcha! I've set them both up as Extension Attributes, and have created an Advanced Search that displays those fields. Once downloaded though, the fields are empty? Do i have to wait for inventory to run on all machines for this to generate results or? 


Gotcha! I've set them both up as Extension Attributes, and have created an Advanced Search that displays those fields. Once downloaded though, the fields are empty? Do i have to wait for inventory to run on all machines for this to generate results or? 


Yep! Inventory needs to run on the machines. Also, if you're using what I linked, note that those two EAs use managed_python3, so if you have a different version of python3 or no python3 at all, they won't run.


Yep! Inventory needs to run on the machines. Also, if you're using what I linked, note that those two EAs use managed_python3, so if you have a different version of python3 or no python3 at all, they won't run.


Ah gotcha. That's probably the issue then. I believe the majority of the machines (if not all) that we have do not have Python3. In this case, I guess we'd need to use xml I assume


Ah gotcha. That's probably the issue then. I believe the majority of the machines (if not all) that we have do not have Python3. In this case, I guess we'd need to use xml I assume


The Firefox file that stores the add-ons list is .json and if I remember correctly, the Chrome extensions list is as well. That's not to say that you couldn't parse the json with bash or zsh but it was tedious enough that I decided to stretch into python for it. If you can get it approved and out to your macs, managed python3 provides a lot of utility. https://github.com/macadmins/python


The Firefox file that stores the add-ons list is .json and if I remember correctly, the Chrome extensions list is as well. That's not to say that you couldn't parse the json with bash or zsh but it was tedious enough that I decided to stretch into python for it. If you can get it approved and out to your macs, managed python3 provides a lot of utility. https://github.com/macadmins/python


Actually I believe I misspoke. 

 

Looks as if Python3 is on our machines by default. So still not sure why the EA's aren't working :( 


Actually I believe I misspoke. 

 

Looks as if Python3 is on our machines by default. So still not sure why the EA's aren't working :( 


Ah I think its just the standard python3 that comes with the machine. Don't believe it's the managed_python3 you are referring to.


Ah I think its just the standard python3 that comes with the machine. Don't believe it's the managed_python3 you are referring to.


I assume you switched the first line to include a path to your python3? If not, do that, but if so, have you tried running the script locally on a test machine/vm? That might give some insight into what's going on. 


I assume you switched the first line to include a path to your python3? If not, do that, but if so, have you tried running the script locally on a test machine/vm? That might give some insight into what's going on. 


Yep! I changed it to /usr/bin/python3.

 

Current result from running via a Self Service Policy:

 

 

[STEP 1 of 4]
Executing Policy Extensions Test
[STEP 2 of 4]
Running script Chrome Extensions List...
Script exit code: 1
Script result: File "/Library/Application Support/JAMF/tmp/Chrome Extensions List", line 90
print result
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(result)?
Error running script: return code was 1.
[STEP 3 of 4]
[STEP 4 of 4]

 

Just to note, I ran this locally on just my machine to test. But definitely want to have it setup as an EA so I can quickly grab a report of everyone's extensions and whatnot

 


Yep! I changed it to /usr/bin/python3.

 

Current result from running via a Self Service Policy:

 

 

[STEP 1 of 4]
Executing Policy Extensions Test
[STEP 2 of 4]
Running script Chrome Extensions List...
Script exit code: 1
Script result: File "/Library/Application Support/JAMF/tmp/Chrome Extensions List", line 90
print result
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(result)?
Error running script: return code was 1.
[STEP 3 of 4]
[STEP 4 of 4]

 

Just to note, I ran this locally on just my machine to test. But definitely want to have it setup as an EA so I can quickly grab a report of everyone's extensions and whatnot

 


For the local run of the firefox one, I get the following:

 

[STEP 1 of 4]
Executing Policy Extensions Test
[STEP 2 of 4]
Running script Get Firefox Extensions...
Script exit code: 1
Script result: Traceback (most recent call last):
File "/Library/Application Support/JAMF/tmp/Get Firefox Extensions", line 17, in <module>
from SystemConfiguration import SCDynamicStoreCopyConsoleUser
ModuleNotFoundError: No module named 'SystemConfiguration'
Error running script: return code was 1.
[STEP 3 of 4]
[STEP 4 of 4]

For the local run of the firefox one, I get the following:

 

[STEP 1 of 4]
Executing Policy Extensions Test
[STEP 2 of 4]
Running script Get Firefox Extensions...
Script exit code: 1
Script result: Traceback (most recent call last):
File "/Library/Application Support/JAMF/tmp/Get Firefox Extensions", line 17, in <module>
from SystemConfiguration import SCDynamicStoreCopyConsoleUser
ModuleNotFoundError: No module named 'SystemConfiguration'
Error running script: return code was 1.
[STEP 3 of 4]
[STEP 4 of 4]

Chrome is not a huge need now.

 

Really am trying to focus on getting Firefox and Safari EA's working to report extensions 


Chrome is not a huge need now.

 

Really am trying to focus on getting Firefox and Safari EA's working to report extensions 


Looking over those errors, it's likely that the dependencies/modules for those pieces are missing from the python environment. That's one reason I do really like that admin-friendly distribution of python and I really recommend it. If you wanted to adapt those scripts, you could get find other modules to use in their place.


So i attempted to make the chrome EA, copied and pasted the code, changed it to the  /usr/bin/python3

but it just doesn't run.

if i run it manually i get this error

ModuleNotFoundError: No module named 'SystemConfiguration'

 

i installed python from here as a test as well

any help is appreciated

https://github.com/macadmins/python/releases/tag/v3.10.2.80694


I've been working on something similar -- extensions/add-ons are an underrated thing to be checking! I don't have a comprehensive script for all three, but I have an EA  for Firefox extensions based on this one for Chrome. Safari is next.


Any chance with Safari? I got stuck there too


Any chance with Safari? I got stuck there too


Yep! https://gist.github.com/dsmortensen/62e517c392a214c0f76b0bd1f0d9dc9d


Reply