Skip to main content
Question

Zoom App asks for Admin credentials when trying to share computer audio


Forum|alt.badge.img+3

As you might know, zoom works perfectly when doing media sharing while you have a web conference.
Her now my issue:

When I try screen sharing and select "Share computer sound" (on the picture, lower left corner), it will ask the very first when doing this for admin credentials. Do you know how can grant the app the respective permissions in order to have working right away without asking for admin rights?

Thanks for your support.
Thomas

38 replies

Forum|alt.badge.img+3
  • Author
  • New Contributor
  • 8 replies
  • February 13, 2018

I was able to track down the problem to an audio device which needs to get installed. So my question changes now to:

a) how do I get this audio device installed via Jamf?
or
b) how can make it happen that the Zoom app does not need admin rights in order to install the audio device?

Thanks
Thomas


Forum|alt.badge.img+3
  • New Contributor
  • 4 replies
  • April 5, 2018

Are you installing the Zoom Client for IT Admins? IT installs with Admin rights.
Mass Deployment With Preconfigured Settings For Mac

Dave


Forum|alt.badge.img+9
  • Contributor
  • 31 replies
  • August 1, 2018

Hey @bmgsupport ,

Did Zoom for IT deployment help? I don't see any flags in this .plist about allowing audio?

Thanks,

Dev


Forum|alt.badge.img+6
  • Contributor
  • 26 replies
  • December 4, 2019

Did anyone figure out how to set/install this audio device via Jamf? Seems to be an issue when deploying the Zoom IT package via patch management.

https://support.zoom.us/hc/en-us/articles/115001799006-Mass-Deployment-with-Preconfigured-Settings-for-Mac


Forum|alt.badge.img+6
  • Contributor
  • 26 replies
  • March 3, 2020

So I figured this out.
The audio driver lives in /Library/Audio/Plug-Ins/HAL/ once installed. They distribute it with the application in /Applications/zoom.us.app/Contents/PlugIns/ZoomAudioDevice.driver.

When you supply your admin password, it looks to be simply copying the driver from the /Applications directory in to the HAL directory. You can push out the driver via MDM with

sudo cp -R /Applications/zoom.us.app/Contents/PlugIns/ZoomAudioDevice.driver /Library/Audio/Plug-Ins/HAL/

Doing this will allow audio to share correctly and users won't be prompted for admin credentials. No idea why Zoom doesn't put this in their documentation.


Kyle_vdk
Forum|alt.badge.img+5
  • New Contributor
  • 2 replies
  • March 14, 2020

Currently working on this issue as well with a deployment to my users. We are using RingCentral Meetings which is run on the Zoom platform so replace Zoom with anywhere you see RingCentral.

The RingCentral Drivers are located in /Applications/RingCentral Meetings.app/Contents/PlugIns/ZoomAudioDevice.driver which needs to be copied to the /Library/Audio/Plug-Ins/HAL/ directory.

Same cp command as above
sudo cp -r /Applications/RingCentral Meetings.app/Contents/PlugIns/ZoomAudioDevice.driver /Library/Audio/Plug-Ins/HAL/

The only problem with this is you have to reboot to get it working. You can solve that by killing coreaudiod process, but then also you have to restart RingCentral Meetings/Zoom so I added a command to kill RingCentral Meetings.

If you would like to avoid rebooting use the commands:
sudo kill $(ps -eaf | grep "RingC" | grep -v grep | awk '{print $2}')
sudo killall coreaudiod

Then open RingCentral Meetings again and you should be good to go.


Forum|alt.badge.img+6
  • Contributor
  • 26 replies
  • March 15, 2020

Nice share Kyle_vdk . I just set the policy to run once at login as I don't want to inadvertently kill the app in case a user is in a meeting. Alternatively, could limit to outside of known business hours.


Forum|alt.badge.img+7
  • Contributor
  • 32 replies
  • June 9, 2020

I ran the command and it did copy the HAL folder over but it still asks me for the admin credentials even after a reboot.

Am I missing a step?


Forum|alt.badge.img+7
  • Contributor
  • 32 replies
  • June 9, 2020

It looks like the permission did not take so I changed it to RnW for everyone and now it is working.


Forum|alt.badge.img+4
  • New Contributor
  • 21 replies
  • June 9, 2020

@supersizeal - Was all you needed to change, is the -RnW in the command? or do you need "everyone" in there somewhere?

Also, @Kyle_vdk - Can I simply change "RingC" to "zoom" or should it be "zoom.us"?


Forum|alt.badge.img+7
  • Contributor
  • 32 replies
  • June 9, 2020

I set Everyone RnW permissions and then I used composer to build the pkg.


Forum|alt.badge.img
  • New Contributor
  • 1 reply
  • July 3, 2020

I'm testing an zoom.us on MacOS 10.15.5 and have the some isue with the prompt for Admin credentials when sharing with computer audio.
For me it seems to work with a script based on the suggestion from 'Kyle_vdk' sudo cp -r /Applications/RingCentral Meetings.app/Contents/PlugIns/ZoomAudioDevice.driver /Library/Audio/Plug-Ins/HAL/
But the kill & kill all comands didn't work for me - as long as I did a reboot. So I figured that I can avoid the reboot reloadinf the kernalextensions using the following commands:
sudo kextunload /System/Library/Extensions/AppleHDA.kext
sudo kextload /System/Library/Extensions/AppleHDA.kext
It may be a good option to use both in an if-clouse prrofing that there is no ZoomAudioDevice.driver like
if [[ ! -e /Library/Audio/Plug-Ins/HAL/ZoomAudioDevice.driver ]]; then sudo kextunload /System/Library/Extensions/AppleHDA.kextsodo kextload /System/Library/Extensions/AppleHDA.kext sudo kextunload /System/Library/Extensions/AppleHDA.kext sudo kextload /System/Library/Extensions/AppleHDA.kext
fi


Forum|alt.badge.img+7
  • Contributor
  • 77 replies
  • January 6, 2021

This seemed to work for me:

#!/bin/sh
cp -R /Applications/zoom.us.app/Contents/PlugIns/ZoomAudioDevice.driver /Library/Audio/Plug-Ins/HAL/
sudo killall coreaudiod

Forum|alt.badge.img+1
  • New Contributor
  • 4 replies
  • January 7, 2021

@ChrisTech This worked for me


Forum|alt.badge.img+7
  • Contributor
  • 29 replies
  • January 11, 2021

I'm still having issues with this problem. I put the script from @ChrisTech in Self Service that users have to manually kick off to fix the issue, which does work.

My problem is that previously, I was using the following script to automatically push out Zoom updates: https://gist.github.com/talkingmoose/5336e69480d87014a4c2ea1d6ec0ea4e
That script worked perfectly, even if the user was actively running a Zoom session, Zoom would just prompt the user to restart Zoom to finish the update, but they had the option to cancel the Zoom restart in case they were in the middle of teaching class. Now, that update removes the ZoomAudioDevice.driver from /Library/Audio/Plug-Ins/HAL/, putting us back at square one and the user then has to manually go to Self Service and run the @ChrisTech script again.

I've tried adding the script lines

#!/bin/sh
cp -R /Applications/zoom.us.app/Contents/PlugIns/ZoomAudioDevice.driver /Library/Audio/Plug-Ins/HAL/
sudo killall coreaudiod

to the Zoom update script (https://gist.github.com/talkingmoose/5336e69480d87014a4c2ea1d6ec0ea4e) but it still prompts for admin credentials when you try to share audio. It seems like the problem with the audio driver getting deleted still exists in the latest Zoom version 5.4.9.

Basically, I'm left with not being able to automatically push out Zoom updates, instead my users will have to manually install the update from Zoom in Self Service, then open the Zoom app, and finally manually run the audio driver fix script from Self Service.

Any ideas? This is the combined script:

#!/bin/zsh

:<<'ABOUT_THIS_SCRIPT'

Written by:William Smith Professional Services Engineer Jamf bill@talkingmoose.net https://gist.github.com/talkingmoose/5336e69480d87014a4c2ea1d6ec0ea4e Originally posted: March 21, 2020 Purpose: Downloads and installs the latest available Zoome Client for Mac directly on the client. This avoids having to manually download and store an up-to-date installer on a distribution server every month. Instructions: Optionally update the sha256Checksum value with a known SHA 256 string. Run the script with elevated privileges. If using Jamf Pro, consider replacing the sha256Checksum value with "$4", entering the checksum as script parameter in a policy. Except where otherwise noted, this work is licensed under http://creativecommons.org/licenses/by/4.0/ "Do not obey in advance."

ABOUT_THIS_SCRIPT # temporary file name for downloaded package pkgFile="Zoom.us.pkg" plistfile="us.zoom.config.plist" # this is the full download URL to the latest version of the product # https://support.zoom.us/hc/en-us/articles/115001799006-Mass-Deployment-with-Preconfigured-Settings-for-Mac url="https://zoom.us/client/latest/ZoomInstallerIT.pkg" # create temporary working directory echo "Creating working directory '$tempDirectory'" workDirectory=$( /usr/bin/basename $0 ) tempDirectory=$( /usr/bin/mktemp -d "/private/tmp/$workDirectory.XXXXXX" ) # change directory to temporary working directory echo "Changing directory to working directory '$tempDirectory'" cd "$tempDirectory" # create plist file echo "<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>ZAutoUpdate</key> <false/> </dict> </plist>" >> us.zoom.config.plist # download the installer package echo "Downloading package $pkgFile" /usr/bin/curl "$url" --location --silent --output "$pkgFile" # run the installer package /usr/sbin/installer -pkg "$pkgFile" -target / # remove the temporary working directory when done /bin/rm -Rf "$tempDirectory" echo "Deleting working directory '$tempDirectory' and its contents" # fix audio driver bug introduced by 5.4.7+ cp -r /Applications/zoom.us.app/Contents/Plugins/ZoomAudioDevice.driver /Library/Audio/Plug-Ins/HAL/ killall coreaudiod exit $exitCode

Forum|alt.badge.img+4
  • New Contributor
  • 7 replies
  • January 11, 2021

@McLeanSchool i have the same issue and i am not good at scripting so i just made the update policy run 2 scripts. I have the updater run then the audio install in the same policy.


Forum|alt.badge.img+7
  • Contributor
  • 29 replies
  • January 11, 2021

@indeskize I didn't even think about putting both scripts in a single policy, good idea! I'll give that a try and see if it works.


russeller
Forum|alt.badge.img+15
  • Valued Contributor
  • 215 replies
  • January 11, 2021

Hey @McLeanSchool

I monitored what was modified when we enter admin creds for the zoom audio driver. It looks like it copies that directory (as you know) and it also modifies this plist:

/Library/Preferences/Audio/com.apple.audio.SystemSettings.plist

You can see it creates a new aggregate audio device that you can see in the /Applications/Utilities/Audio MIDI Setup.app utility (in screenshot). Could it be that zooms installer used to add this audio device during the package install process while it had admin rights and now it doesn't? I'm not going to try and edit that com.apple.audio.SystemSettings.plist preference file.


atomczynski11
Forum|alt.badge.img+18

I was working with

#!/bin/sh
cp -R /Applications/zoom.us.app/Contents/PlugIns/ZoomAudioDevice.driver /Library/Audio/Plug-Ins/HAL/
sudo killall coreaudiod

last night and on one machine needed to restart the computer to gain the share audio functionality.


atomczynski11
Forum|alt.badge.img+18

I'm seeing some machines where the script completes (copies the files) however the ZoomAudioDevice does not show up in the list of Audio Devices.

a restart does not fix, however if I run the script the second time then the audio device is shown.

Thoughts?


Forum|alt.badge.img+7
  • Contributor
  • 32 replies
  • January 25, 2021

Anyone know how to enable the Optimize for Video Clip option without asking for Admin credentials?


jonw
Forum|alt.badge.img+10
  • New Contributor
  • 67 replies
  • February 5, 2021

@atomczynski I found that simply 'killall coreaudio' was hit or miss as you've noticed. I replaced 'killall coreaudio' with this function (slightly tweaked concept I pulled from a Zoom installer post-install script). Take it with a grain of salt, but so far it's been working well for me.

### Add function to your script
function kill_coreaudiod()
{
#   Set variable to all PIDs of /usr/sbin/coreaudiod
#   --invert-match to remove PID for the grep command itself
    coreaudiod_pid=$( ps -ax -o pid -o command | grep "/usr/sbin/coreaudiod" | grep --invert-match grep | awk '{print $1}' )

    for each_pid in $coreaudiod_pid
    do
        if [[ $each_pid -gt 0 ]] 
        then
            kill -9 $each_pid
        fi
    done
}
### replace 'killall coreaudio' with call to function
    kill_coreaudiod

jonw
Forum|alt.badge.img+10
  • New Contributor
  • 67 replies
  • February 5, 2021

fwiw, here's my full script... obviously test & use at your own risk!

#!/bin/bash

### Zoom audio device driver repair
### 2021.01.15 JW

### There is a packaging or broken script issue in recent Zoom installer(s?)
### where /Library/Audio/Plug-Ins/HAL/ZoomAudioDevice.driver is either broken or failing to install. 
### Either way, users are being prompted for admin pass to install the audio driver when attempting to share desktop or videos 'with sound'
### This should hopefully resolve, though resetting coreaudio sometimes seems hit or miss, take with a grain of salt.

### more details found here (see dates 2021.01.11)
### https://www.jamf.com/jamf-nation/discussions/27069/zoom-app-asks-for-admin-credentials-when-trying-to-share-computer-audio


### if this is part of a re-install, let's give installer a few extra seconds to finish up
sleep 10


### concept below pulled from factory ZoomInstallerIT.pgk post-install script:
### However an issue I see is coreaudiod was not reliably being reset, 
###  I reworked Zoom's method for grabbing PID and it seems to work much better now! -JW
### Note an easy clue as to whether this is working or not is to have open /Applications/Utilities/Audio MIDI Setup...
### ...if the ZoomAudioDevice loads we're golden... otherwise back to the drawing board.

function kill_coreaudiod()
{
#   Set variable to all PIDs of /usr/sbin/coreaudiod
#   --invert-match to remove PID for the grep command itself
    coreaudiod_pid=$( ps -ax -o pid -o command | grep "/usr/sbin/coreaudiod" | grep --invert-match grep | awk '{print $1}' )

    for each_pid in $coreaudiod_pid
    do
        if [[ $each_pid -gt 0 ]] 
        then
            kill -9 $each_pid
        fi
    done
}
AudioPluginPath=/Library/Audio/Plug-Ins/HAL
audioPluginfile=/Applications/zoom.us.app/Contents/Plugins/ZoomAudioDevice.driver

st=$(kextstat -b zoom.us.ZoomAudioDevice | grep zoom.us.ZoomAudioDevice 2>&1)

if [[ $st = *zoom.us.ZoomAudioDevice* ]] ; then
    echo "audio device is loaded, skipping"
    exit 1
else
    #(re)install audio driver
    if [[ -d "$AudioPluginPath/ZoomAudioDevice.driver" ]]; then
        rm -rf "$AudioPluginPath/ZoomAudioDevice.driver"
    fi

    cp -rf "$audioPluginfile" "$AudioPluginPath"

    ### reset coreaudiod ...see function & notes on Audio MIDI setup
    kill_coreaudiod
    sleep 5
fi

JasonAtCSUMB
Forum|alt.badge.img+6
  • Contributor
  • 53 replies
  • April 13, 2021

Your suggestions were really helpful. I cleaned up the function and corrected syntax.

function kill_coreaudiod()
{
#   Set variable to all PIDs of /usr/sbin/coreaudiod
#   --invert-match to remove PID for the grep command itself
    coreaudiod_pid=$( ps -ax -o pid -o command | grep "/usr/sbin/coreaudiod" | grep --invert-match grep | awk '{print $1}' )

    for each_pid in $coreaudiod_pid
    do
        if [[ $each_pid -gt 0 ]] 
        then
            kill -9 $each_pid
        fi
    done
}

When comparing int values, use -gt -lt -eq. The > character is for string values. It may work here, but I wouldn't chance it. Correct way to use for X in Y is to to call out the $coreaudiod_pid variable. Iterate through $each_pid, not coreaudiod_pid


jonw
Forum|alt.badge.img+10
  • New Contributor
  • 67 replies
  • April 13, 2021

@jfilice_at_csumb Much cleaner, thanks! I've updated my script above for anyone reading along. I see the latest Zoom installer is once again correctly updating the ZoomAudioDevice.driver, so hopefully this script is no longer necessary (but just in case...). Thanks again!


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings