Skip to main content

Hi All, hoping for some help here. Looking to frankenstein together a script to add our admin account to FV2 as an enabled user. I've got a script that is currently working under the following conditions:



Running locally in terminal
Running manually from Self Service



It is not working when running automatically via JAMF policy. That is my goal at this point.



The script is here:



!/bin/sh



Add ADMIN ACCOUNT to FV2.sh



userName=$(/usr/bin/stat -f%Su /dev/console)
prefix='SECRET HERE'
pass=$prefix



Get the logged in user's password via a prompt



echo "Prompting ${userName} for their login password."
userPass="$(/usr/bin/osascript -e 'Tell current application to display dialog "Please enter your login password:" default answer "" with title "ADMIN ACCOUNT FileVault 2 Key Escrow" with text buttons {"Ok"} default button 1 with hidden answer' -e 'text returned of result')"



echo "Adding ADMIN ACCOUNT to FileVault"



This "expect" block will populate answers for the fdesetup prompts that normally occur while hiding them from output



expect -c "
log_user 0
spawn fdesetup add -usertoadd ADMIN ACCOUNT
expect "Enter the user name:"
send "${userName}"

expect "Enter the password for user '${userName}':"
send "${userPass}"

expect "Enter the password for the added user 'ADMIN ACCOUNT':"
send "${pass}"

log_user 1
expect eof
"
expect -c "
log_user 0
spawn fdesetup changerecovery -personal
expect "Enter the user name:"
send "${userName}"

expect "Enter the password for user '${userName}':"
send "${userPass}"

log_user 1
expect eof
"



exit 0



The error that is being thrown in JAMF is here:



Script result: Prompting joshfischer for their login password.
2020-08-12 12:10:24.539 osascript[10912:277821] -[NSCFConstantString objectAtIndex:]: unrecognized selector sent to instance 0x7fff9153d0e0
2020-08-12 12:10:24.544 osascript[10912:277821]
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFConstantString objectAtIndex:]: unrecognized selector sent to instance 0x7fff9153d0e0'
First throw call stack:
(
0 CoreFoundation 0x00007fff39d0ab57 exceptionPreprocess 250
1 libobjc.A.dylib 0x00007fff729b85bf objc_exception_throw
48
2 CoreFoundation 0x00007fff39d89be7 -[NSObject(NSObject) _retain_OA] 0
3 CoreFoundation 0x00007fff39c6f3bb ___forwarding
1427
4 CoreFoundation 0x00007fff39c6ed98 CF_forwarding_prep_0 120
5 CoreFoundation 0x00007fff39c3ded7 CFArrayContainsValue
197
6 HIServices 0x00007fff37f447b9 TransformProcessType 927
7 osascript 0x000000010e1ef02c osascript
12332
8 HIToolbox 0x00007fff389597c5 AEInteractWithUser 53
9 StandardAdditions 0x00000001126838b9 CSDSTEXTurl
5865
10 StandardAdditions 0x0000000112674331 AEVTsysodlog 85
11 AE 0x00007fff3b001203 _AppleEventsCheckInAppWithBlock
18103
12 AE 0x00007fff3b010c83 AESendMessage 2838
13 AE 0x00007fff3b01cfb1 aeSend
355
14 osascript 0x000000010e1edb25 osascript 6949
15 AppleScript 0x00007fff4d99d342 _Z13ComponentSendPK6AEDescPS_ii
485
16 AppleScript 0x00007fff4d9aef0a _ZN15TUASApplication4SendEP25TStackFrame_UASRemoteSendP6AEDescS3_hhh 2332
17 AppleScript 0x00007fff4d9cfca7 _Z13UASRemoteSendhhhhhPh
548
18 AppleScript 0x00007fff4d9db402 _Z13UASValue_Sendhh14TUASClassIndexh 326
19 AppleScript 0x00007fff4d9b2ff9 _Z11UASExecute1v
288
20 AppleScript 0x00007fff4d986b26 _Z14ASExecuteEventPK6AEDescjiPj 614
21 AppleScript 0x00007fff4d97f971 AppleScriptComponent
1677
22 AppleScript 0x00007fff4d998bdb _ZN12AGenericCall8DelegateEP23ComponentInstanceRecord 37
23 AppleScript 0x00007fff4d998ba1 _ZN15AGenericManager13HandleOSACallEP19ComponentParameters
57
24 AppleScript 0x00007fff4d99818c GenericComponent 156
25 OpenScripting 0x00007fff38b9c3e2 OSAExecuteEvent
50
26 osascript 0x000000010e1ee5bd osascript 9661
27 libdyld.dylib 0x00007fff73b60cc9 start
1
28 ??? 0x0000000000000005 0x0 5
)
libc
+abi.dylib: terminating with uncaught exception of type NSException



I have a PPPC for OSA Script applied and for Terminal. Unsure where to go from here....please help!

I seem to have found an answer with the help of a colleague...changing userPass="$(/usr/bin/osascript -e 'Tell current application to display dialog "Please enter your login password:" default answer "" with title "ADMIN ACCOUNT FileVault 2 Key Escrow" with text buttons {"Ok"} default button 1 with hidden answer' -e 'text returned of result')" to userPass="$(/usr/bin/osascript -e 'Tell application "system events" to display dialog "Please enter your login password:" default answer "" with title "ADMIN ACCOUNT FileVault 2 Key Escrow" with text buttons {"Ok"} default button 1 with hidden answer' -e 'text returned of result')" seems to have worked