@ryoshioka, you'd have to know the FIlevault password of the account that's already enabled. You could then use the inputplist functionality of fdesetup to add the management account to FileVault. That's what we do in this situation.
For Example, I have a policy that runs the below script to add our management account to FV. You can extend this script with a little user interaction to prompt them for their current filevault credentials.
#!/bin/bash
set -o nounset # Treat unset variables as an error
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
PLIST_TEMP=`mktemp PL.XXXXXXX`
cat << EOF > $PLIST_TEMP
<?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>Username</key>
<string>filevault_username</string>
<key>Password</key>
<string>filevault_password</string>
<key>AdditionalUsers</key>
<array>
<dict>
<key>Username</key>
<string>management_account</string>
<key>Password</key>
<string>management_password</string>
</dict>
</array>
</dict>
</plist>
EOF
/usr/bin/fdesetup add -inputplist < $PLIST_TEMP
srm -m $PLIST_TEMP
Just make sure to update the username and password keys for your environment.
If you need to later remove the management account you can do it with this script:
#!/bin/bash
set -o nounset # Treat unset variables as an error
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
PLIST_TEMP=`mktemp PL.XXXXXXX`
cat << EOF > $PLIST_TEMP
<?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>Username</key>
<string>filevault_username</string>
<key>Password</key>
<string>filevault_password</string>
<key>AdditionalUsers</key>
</dict>
</plist>
EOF
/usr/bin/fdesetup remove -user management_account < $PLIST_TEMP
srm -m $PLIST_TEMP