fedora-intune: validate the onboarding JSON in the Defender script
A paste into Intune that lost the first "{" line produced an unreadable
mdatp_onboard.json, and Defender reported "No license found". Check that
the pasted JSON parses and has onboardingInfo before writing it, and log
what to fix otherwise.
The placeholder also appeared twice, so a find-and-replace of it broke
the script; match it by prefix so it appears only once.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
07434cedab
commit
3afef0d821
1 file changed
+9
-1
@@ -71,8 +71,16 @@ if ! wait_for_daemon; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$(field org_id)" ]]; then
|
if [[ -z "$(field org_id)" ]]; then
|
||||||
if [[ "${ONBOARDING_JSON}" == REPLACE_WITH_MDATP_ONBOARD_JSON ]]; then
|
# Prefix match, so the placeholder appears only once in this file and a
|
||||||
|
# find-and-replace of it can't hit this line.
|
||||||
|
if [[ "${ONBOARDING_JSON}" == REPLACE_WITH_* ]]; then
|
||||||
log "Defender is not onboarded and this script has no onboarding JSON."
|
log "Defender is not onboarded and this script has no onboarding JSON."
|
||||||
|
elif ! printf '%s\n' "${ONBOARDING_JSON}" \
|
||||||
|
| python3 -c 'import json, sys; assert "onboardingInfo" in json.load(sys.stdin)' 2>/dev/null; then
|
||||||
|
# A paste that lost the first "{" or last "}" line would otherwise leave
|
||||||
|
# Defender with an unreadable onboarding file ("No license found").
|
||||||
|
log "The onboarding JSON in this script is not valid; paste mdatp_onboard.json again, including its first '{' and last '}' lines."
|
||||||
|
exit 1
|
||||||
else
|
else
|
||||||
log "Defender is not onboarded; writing ${ONBOARD_FILE}."
|
log "Defender is not onboarded; writing ${ONBOARD_FILE}."
|
||||||
install -d -m 0755 "$(dirname "${ONBOARD_FILE}")"
|
install -d -m 0755 "$(dirname "${ONBOARD_FILE}")"
|
||||||
|
|||||||
Reference in new issue
Block a user