Get Support
Recently active
How do I generate an mdm profile to populate mdmProfileData for a return to service API call?https://learn.jamf.com/en-US/bundle/technical-articles/page/Return_to_Service.html#ariaid-title3
We are trying to change the MacOS Date & Time setting "24-hour time" on 15.2 via a script. There is nothing recent / working anywhere on the web. Is it impossible?
I have set up Cache Server 1 in City A, where I added the subnets of this location in the "content cache for" section. For my local network, I used the "custom public IPs" option and added a TXT record to the local DNS. This configuration is working as expected. Now, I am setting up Cache Server 2 in City B. The configuration is the same as in City A, ensuring that the subnets in City B fetch cached content from Server 2. I have also configured them as peers, with no parent settings in place, and both City DNS servers are synchronized with each other. Q1: How is data served to clients in City B if Cache Server 1 already has the same files? Q2: What changes should be made so that, in the event one server goes down, devices at both locations can still retrieve data from the other server? Additionally, while both servers are available, how can we ensure that devices access their respective server to minimize latency? Q3: How do peers work in this setup? If Server 1 has a file, does
I want to share a useful link,Jamf Youtube Channel has published,how to troubleshoot Configuration Profiles in Jamf Promake sure the Configuration profile you created is correct, sent to the Mac, and processed until complete, if not, you can find where the process stopped/failed.here is the link ( https://www.youtube.com/watch?v=c0r_fz4Kod8 )
We are trying to write a script to output all the active wifi and ethernet connections, if any, and turn off the wifi if there is an active ethernet connection. This is not working at all, because ifconfig is not returning the names of the connections (which may or may not be ethernet). networksetup -listallhardwareports is better as it displays the name of the "hardware port" but doesn't list the status. This seems promising but we haven't been able to use it in a script https://developer.apple.com/documentation/systemconfiguration/1517371-scnetworkinterfacegetinterfacety?language=objc #!/bin/bash # Define the names of the interfacesWI_FI_INTERFACE="Wi-Fi"ETHERNET_INTERFACE="Ethernet" # Check if the Ethernet interface is activeethernet_status=$(ifconfig "$ETHERNET_INTERFACE" | grep "status: active") if [ -n "$ethernet_status" ]; thenecho "Ethernet is active. Turning off Wi-Fi..."networksetup -setairportpower "$WI_FI_INTERFACE" offelseecho "Ethernet is not active. Turn
We have SSO policy that runs at every network change to reestablish the key, with documentation from Apple. This was setup prior to me supporting. The problems is, that it runs and reestablishes the SSO, but in the logs, it shows a network error. When that happens, it prevents any other policy from running other then self service policies until the user restarts their mac. It doesn't happen on all devices, it's pretty sporadic. We only find out when we notice updates not installing. When you go to the device, the only policy that runs over and over is out SSO Policy. Here is the script that runs in the policy. #!/bin/bash killall AppSSOAgent sleep 10 app-sso -a "oursite" -R -q exit 0 Here is our Config Profile.
We work in an area where users do not have admin rights, so I put together this script that allows them to remove apps from the main /Applications folder. You can control which required apps cannot be removed: Link to my Repo: https://github.com/ScottEKendall/JAMF-Pro-Scripts/tree/main/AppDelete #!/bin/zsh # # App Delete # # Written: Aug 3, 2022 # Last updated: Dec 21, 2024 ###################################################################################################### # # Gobal "Common" variables # ###################################################################################################### LOGGED_IN_USER=$( scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ && ! /loginwindow/ { print $3 }' ) USER_DIR=$( dscl . -read /Users/${LOGGED_IN_USER} NFSHomeDirectory | awk '{ print $2 }' ) SW_DIALOG="/usr/local/bin/dialog" SUPPORT_DIR="/Library/Application Support/GiantEagle" SD_BANNER_IMAGE="${SUPPORT_DIR}/SupportFiles/GE_SD_BannerImage.p
Hello everyone,After looking around for a little bit, borrowing from a few forums to make a script that adds exceptions to the popup portion of Safari's settings. I thought I would include this for anyone who would want to add it. Keep in mind this particular script is made to run on check-in. During my testing i was running through self service or a custom trigger via terminal and i came across errors trying to get terminal to call the custom trigger. Custom triggers + this policy will not work unless you grant terminal Full disk access. #!/bin/zsh # Quit Safari to ensure the database is not lockedkillall Safari # Add or update site entries in Safari's PerSitePreferences.dbaddOrUpdateSiteEntries() {for site in "${PUsites[@]}"; do# Check if the site already exists in the databaseexistingEntry=$(sudo -u "$loggedInUser" sqlite3 "$db" "SELECT preference_value FROM preference_values WHERE domain='${site}' AND preference='PerSitePreferencesPopUpWindow';")if [[ -n "$existingEntry" ]]; then#
I have been trying to get Barracuda Device Manager installed from JAMF on our companies macbooks. In order to install it manually you have run a script that Barracuda provides. I have no issues doing the manual install but I want to automate it now. I have tried just uploading the pkg I downloaded from Barracuda but that doesn't work. I tried to run the script manually before I installed from JAMF and it doesn't work. I uploaded the script and installed from JAMF that doesn't work. I have tried adding the script to the pkg when creating the software policy that doesn't work. I also used JAMF composer to create the pkg and tried all of the steps I mentioned before. I did check the logs I found this: Installing at base path / installer: The install failed. The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance. So right now I am thinking of a couple of things that maybe happening it may be something on my end w
Our iPads do not automatically join one of our Wi-Fi networks because they require the user to select the Wi-Fi and then trust the cert. They are initially setup at Head Office then are sent to a store. But they do not join the Store Wi-Fi automatically on arrival, the user has to go to Wi-Fi settings, click on the SSID under "My networks" then press trust on the certificate. We have a self-signed root, an intermediate and a Wi-Fi cert. All of which I have pulled directly from ClearPass our Wi-Fi authentication application. I have put all of these certs into a Config Profile and pushed to the iPads, I have tried in separate profiles and also in the Wi-Fi payload profile but none of these work. Does anyone have an idea what I am doing wrong here?
To add the proxy configurations automatically, we can deploy a profile with the Content Filter payload configured. First, we need the app Identifier and Code/Designated Requirement information, PPPC Utility is a great tool to read that directly from the Apps. In the screenshot, the identifier is "com.forcepoint.ne-app" and the code is "identifier "com.forcepoint.ne-app" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = C489D5E8E8". Then, create a new profile or edit the exsited PPPC/KEXT profile, configure the Content Filter payload, and deploy to the client: Now, a new proxy setting will be added and enabled by force, and no pop-up window again during the installation.
Hi all, When attempting to create a custom SSL configuration for the GlobalProtect VPN, I am unable to assign a specific certificate that was previously uploaded. The "Identity Certificate" field does not appear at all, so I cannot select the specific certificate. Furthermore, when trying to deploy the configuration to an iPad without this setup, it unfortunately results in a failure. The configuration was performed according to the PA article: Configure a User-Initiated Remote Access VPN Configuration for iOS Endpoints Using Jamf Pro. https://docs.paloaltonetworks.com/globalprotect/10-1/globalprotect-admin/mobile-endpoint-management/manage-the-globalprotect-app-using-jamf/manage-the-globalprotect-app-for-ios-using-jamf-pro/configure-ios-endpoints-using-jamf-configuration-profiles/configure-a-user-initiated-remote-access-vpn-configuration-for-ios-endpoints-using-jamf-pro
Hello everyone!Has anyone ever had a Mac not automatically check-in (and therefore also inventory updates) but only when the user carries out some operation via self-service?It appears as if the incoming connection from Jamf is blocked/filtered, but is only available for outgoing.It happens to me on 3 colleagues, on one I identified the problem, the OnVue software for online certifications, but for the other 2 I can't understand what type of troubleshooting I could do. Tried redeploying the jamf binary, no luck.Has anything like this or something similar ever happened to you?
Has anyone ever tried preventing the MFA requirement each time your user's log into Self Service with their corporate account? We as techs usually set up laptops for users to a certain extent and its been kind of a pain to have the user verify for us every time. In our environment MFA is required every hour or so with the self service app.We have conditional access policies in place and use plists for such applications like chrome to surpress these MFA prompts but was wondering if we could do the same for Self Service. Thank you
Content backfill required
So, el capitan has a new binary called sfltool. It has been discussed a few times, and I have incorporated it into my firstrun script to add items to the sidebar. I think many more uses for this will be discovered.Here is my script as an example. #!/bin/bash # Get the Username of the currently logged user loggedInUser=`/bin/ls -l /dev/console | /usr/bin/awk '{ print $3 }'` if [ -e /usr/local/bin/mysides ] then su - "$loggedInUser" -c "/usr/local/bin/mysides remove All My Files file:///System/Library/CoreServices/Finder.app/Contents/Resources/MyLibraries/myDocuments.cannedSearch/" && sleep 2 su - "$loggedInUser" -c "/usr/local/bin/mysides remove iCloud x-apple-finder:icloud" && sleep 2 su - "$loggedInUser" -c "/usr/local/bin/mysides remove domain-AirDrop nwnode://domain-AirDrop" && sleep 2 /usr/bin/sfltool add-item com.apple.LSSharedFileList.FavoriteItems file:///Users/$loggedInUser &&
Hello I am blanking on trying to come up with the answer. My boss has tasked me with a way to remove all of our canon office printers from users Mac os devices. Obviously the first thing I have done is create a script. But my boss is telling me that there is something else that you can do that is native in Jamf Pro. Would anyone know what that would be? I shared with him a link in the Jamf Pro settings that is titled "Printers" and he said that is wrong but I am close. I just do not know what else it can be.
This is an ever growing / changing library of common functions that I have created over the years. Fairly easy to use, just grab the common functions you need when creating your own scripts. Thought I would share with the community. Any feedback is welcome. #!/bin/zsh ###################################################################################################### # # Gobal "Common" variables (do not change these!) # ###################################################################################################### export PATH=/usr/bin:/bin:/usr/sbin:/sbin LOGGED_IN_USER=$( scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ && ! /loginwindow/ { print $3 }' ) USER_DIR=$( dscl . -read /Users/${LOGGED_IN_USER} NFSHomeDirectory | awk '{ print $2 }' ) OS_PLATFORM=$(/usr/bin/uname -p) [[ "$OS_PLATFORM" == 'i386' ]] && HWtype="SPHardwareDataType.0.cpu_type" || HWtype="SPHardwareDataType.0.chip_type" SYSTEM_PROFILER_BLOB=$(
WIP script to show all relevant IP addresses running on an end users Mac. Good for having the user give you their IP addresses when trying to remote in. Uses Swift Dialog to show info to users...designed to be run from Self Service. #!/bin/zsh ###################################################################################################### # # Gobal "Common" variables # ###################################################################################################### export PATH=/usr/bin:/bin:/usr/sbin:/sbin LOGGED_IN_USER=$( scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ && ! /loginwindow/ { print $3 }' ) USER_DIR=$( dscl . -read /Users/${LOGGED_IN_USER} NFSHomeDirectory | awk '{ print $2 }' ) SW_DIALOG="/usr/local/bin/dialog" SUPPORT_DIR="/Library/Application Support/GiantEagle" ICON_FILES="/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/" OVERLAY_ICON="${SUPPORT_DIR}/SupportFiles/DiskSpace.png" SD_WINDOW_ICO
Morning All I have been working for sometime on getting our macs compliant with intune. It does seem to work. The process seems extremely clunky with users running through the steps in company portal which seems very user driven. I'm sure I have read somewhere this process has become obsolete, is that right? Is there a better way? Thanks
Dear All,I need a bash script for adding "Favourites Finder Sidebar items" in macOS Monterey or Custom Payload profile. Please advise. Thanks!Raj.
Everyone in my environment gets Office preinstalled on their Macs. Users with Acrobat Pro licenses may install the app through the Creative Cloud Desktop app. When Acrobat Pro users install the app, next time they open Word or PowerPoint, they get an error like this: The only advice I've really seen on Adobe's forums is to go in and delete the addins. Since this issue spans Office 2016 (no longer in my environment), 2019, 2021, 2024, and 365, I've written a script (below and on my GitHub) to take care of that issue on a per-computer basis, but it needs to be re-run whenever Adobe ships an update that replaces the Office addin. Does anyone here have a better solution or should I just work on user training that "when you get Run-time error '53', use this nifty button in Jamf to fix it"? #!/bin/zsh # Written by D3xbot # Setup # Set user/localized dirs userAddinDir="/Users/$3/Library/Group Containers/UBF8T346G9.Office/User Content/Startup/" localizedUserAddinDir="/Users/$
I'm trying to create a Policy to update mac like SUPER can since our organization won't allow it's use. Issue i'm having is when running command I keep getting error messages saying" No such update No updates are available. "Here is Syntax I have hopefully someone can point out my error.sudo -S softwareupdate --install 'macOS Sequoia 15.2-24C101' --restart --force --no-scan --agree-to-license --stdinpass "$4" --user "$5" I've tired "macOS Sequoia 15.2-24C101", "macOS Sequoia 15.2", "15.2"Really appreciate everyone time for reviewing this posting.
Hello Team From my understanding and different tests, Compliance panel is accessible only if OIDC has been enabled on the Jamf Pro Single sign-on configuration. Arg ! Domain verification 🥶 (how to.. request 4 validations process in a day) Skip it, and just use Jamf account without IDP.. not secure but it's beta instance. Is it something you are going to remove after the Beta ? Indeed, i do not understand the use case : security ? I do not think to be the only one, my Jamf Pro console access is secure by an IDP. I cannot explain to my Identity Teams: that we need to connect the IDP to Jamf Account website, to list users that need also to be listed on Jamf Pro, which need to be allowed in the IDP app access...🥴 to allow admins to connect on the Jamf Pro console. the answer will be : we already have a process in place which is secure and works as expected, why do we have to add another party. i cannot explain to my Security Teams: that we are going to us
Hello All, We implemented Platform SSO through JAMF to avoid repetitive username and password prompts again and again when accessing company resources. now the issue is that user is getting the shared account(Which he used before in outlook and now removed from outlook) populated when accessing any company resources, it is happening only after implementing Platform SSO. We clicked on 3 dots and clicked on to remove and forget option but no luck. Any idea to suppress these shared account not to be populated when accessing any company resources?
Earn a cool badge and Jamf Nation Reward Bytes for your published articles. We’re looking forward to your submissions!