Template repository for Intune Proactive Remediation scripts used to support DOCFA which requires legacy Java registry keys to be present so the client software recognizes a Java runtime.
Files
ProactiveRemediation_Detection.ps1- verifica la presenza dijvm.dlle dei valori attesi nel registroProactiveRemediation_Remediation.ps1- crea/aggiorna le chiavi di registro richieste, può esportare un file.rege produce un file.jsoncon i valori impostati
Log & JSON
- I log di esecuzione vengono salvati in
C:\ProgramData\IntuneLogs\DOCFA_Java\(configurabile nello script). - Per semplificare il parsing automatico, lo script di remediation crea un file JSON con i valori di registro impostati. Il nome file è nel formato
DOCFA_Java_PR_YYYYMMDD_HHMMSS.json.
Esempio di struttura JSON generata: { "Timestamp": "2026-01-23T12:34:56.0000000Z", "JavaHome": "C:\Program Files\Java\jre1.8.0_251", "RuntimeLib": "C:\Program Files\Java\jre1.8.0_251\bin\server\jvm.dll", "Properties": [ { "Path": "HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment\1.5", "Name": "JavaHome", "Value": "C:\Program Files\Java\jre1.8.0_251" }, { "Path": "HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment\1.5", "Name": "RuntimeLib", "Value": "C:\Program Files\Java\jre1.8.0_251\bin\server\jvm.dll" } ] }
Tests
- Vedi gli script di test Pester nella cartella del repository per esempi di esecuzione e casi di verifica.
Comportamento di sicurezza (ultima versione)
- La remediation non userà una JVM 64-bit per impostare le chiavi legacy richieste da DOCFA. Se viene individuato solo un
jvm.dllsottoC:\Program Files\(installazione 64-bit) e non esiste alcuna JVM x86 sottoC:\Program Files (x86)\, la remediation viene interrotta: viene scritto un messaggio di WARN che richiede l'installazione di una Java x86 e la funzione ritorna errore (exit code 1). - Se esistono sia una JVM 64-bit che una JVM x86, la remediation preferisce la JVM x86 e procede usando il percorso x86 per impostare le chiavi
WOW6432Node\JavaSoft\....
Questo comportamento è stato introdotto per motivi di compatibilità e sicurezza: le chiavi simulate devono rappresentare una runtime x86 coerente con il client DOCFA che richiede componenti a 32-bit.
Questo pacchetto permette di configurare automaticamente i dispositivi aziendali in modo che DOCFA4 trovi una Java Runtime Environment compatibile, simulando la presenza di Java 1.5.0_16 ma puntando a una JRE/JDK 8 realmente installata (Oracle, Eclipse Adoptium/Temurin, OpenJDK, ecc.).
DOCFA_Java_Detection.ps1
Script di detection per Intune Proactive Remediations.DOCFA_Java_Remediation.ps1
Script di remediation per Intune Proactive Remediations.README_DocfaJava_Intune.md
Questo file di istruzioni.
- Verifica la presenza della chiave:
HKLM\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment\1.5
- Controlla il valore:
RuntimeLib→ percorso versojvm.dll
- Esito:
- Exit 0 se
RuntimeLibpunta a un filejvm.dllesistente - Exit 1 se la chiave manca, il valore è vuoto o il file non esiste
- Exit 0 se
- Output:
- Messaggi strutturati (
[INFO],[WARN],[ERROR]) visibili nei report Intune - Log locale in
C:\ProgramData\IntuneLogs\DOCFA_Java\
- Messaggi strutturati (
-
Ricerca di jvm.dll
- Scandisce le principali directory di installazione:
C:\Program Files\Java,C:\Program Files\Eclipse Adoptium,AdoptOpenJDK,Zulu,Amazon Corretto- Analoghe in
C:\Program Files (x86)
- Prima passata: cerca
jvm.dllcon pattern tipico di Java 8 (1.8,8.0,jre8,jdk8) - Seconda passata (fallback): qualsiasi
jvm.dllcon percorsi legati ajava,jre,jdk,adoptium,temurin,openjdk,corretto,zulu - Se non trova nulla → exit 1 con errore
- Scandisce le principali directory di installazione:
-
Deduced
JavaHome- A partire dal percorso di
jvm.dll(es....\jre-8.x\bin\client\jvm.dll) risale di due livelli:JavaHome = ...\jre-8.x
- A partire dal percorso di
-
Aggiornamento chiavi di registro
Vengono create/aggiornate le chiavi (sotto
HKLM\SOFTWARE\WOW6432Node\JavaSoft):-
Java Plug-in\1.5.0_16JavaHome→JavaHomeindividuatoUseJava2IExplorer→1HideSystemTrayIcon→0
-
Java Runtime EnvironmentCurrentVersion→"1.5"BrowserJavaVersion→"1.5.0_16"
-
Java Runtime Environment\1.5eJava Runtime Environment\1.5.0_16JavaHome→JavaHomeindividuatoRuntimeLib→ percorso completo dijvm.dllMicroVersion→"0"
-
Java Runtime Environment\1.5.0_16\MSIINSTALLDIR→JavaHome\SYSTRAY,EULA,IEXPLORER,MOZILLA,JAVAUPDATE,AUTOUPDATECHECK,JU→"0"
-
-
Output
- Messaggi strutturati nei report Intune
- Log locale con rotazione e retention
Gli script generano log in due modalità:
-
Output verso Intune
- Ogni messaggio usa il formato:
YYYY-MM-DD HH:MM:SS [LIVELLO] Messaggio
- Livelli:
INFO,WARN,ERROR
- I messaggi sono visibili nella sezione dei log di Proactive Remediations.
- Ogni messaggio usa il formato:
-
Log locale su disco
- Percorso cartella:
C:\ProgramData\IntuneLogs\DOCFA_Java\
- Nome file:
DOCFA_Java_PR_YYYYMMDD.log(un file al giorno)
- Retention:
- i file più vecchi di 30 giorni vengono eliminati automaticamente
- Limite dimensione:
- se un file supera 1 MB, viene troncato e ricreato, mantenendo solo un messaggio di reset e i log successivi
- Percorso cartella:
Questa struttura garantisce:
- Log sintetici e ordinati in Intune
- Storico locale utile per troubleshooting approfondito
- Controllo su dimensione massima e durata dei log
-
Portale Intune
- Vai in:
Endpoint security → Endpoint analytics → Proactive remediations
- Vai in:
-
Creazione remediation
- Clicca su Create script package
- Name (es.):
DOCFA - Java 1.5 compatibility (JRE 8) - Description:
"Verifica e configura le chiavi di registro JavaSoft per permettere a DOCFA4 di utilizzare Java 8 simulando la versione 1.5.0_16."
-
Script
- Detection script: carica
DOCFA_Java_Detection.ps1 - Remediation script: carica
DOCFA_Java_Remediation.ps1
- Detection script: carica
-
Settings script
- Run this script using the logged-on credentials:
No(deve girare come SYSTEM per scrivere in HKLM) - Run script in 64-bit PowerShell:
Yes(le chiavi sono sottoWOW6432Nodema la vista HKLM è corretta da 64 bit)
- Run this script using the logged-on credentials:
-
Scope (tag, gruppi)
- Assegna la remediation ai gruppi di dispositivi che utilizzano DOCFA4.
-
Schedule
- Ad esempio: ogni giorno o ogni settimana, a seconda della frequenza con cui ti aspetti aggiornamenti/installazioni di Java.
-
Da Intune
- Nella sezione Proactive remediations, seleziona il pacchetto creato.
- Controlla la scheda Reports:
- Detection status (Compliant / Non-compliant)
- Remediation status e log dei singoli run
-
Sul client
- Controlla le chiavi di registro:
HKLM\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment\1.5HKLM\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment\1.5.0_16
- Verifica la presenza dei log locali:
C:\ProgramData\IntuneLogs\DOCFA_Java\DOCFA_Java_PR_YYYYMMDD.log
- Controlla le chiavi di registro:
- Gli script non generano file .reg: scrivono direttamente nel registro.
- Se nella tua infrastruttura usi solo un vendor specifico (es. solo Temurin),
puoi semplificare la funzione di ricerca
Get-JvmDllPathlimitandola alle cartelle pertinenti. - Se DOCFA richiede una versione diversa da
1.5.0_16, puoi adattare:BrowserJavaVersion- il nome della chiave sotto
Java Plug-in(attualmente1.5.0_16) - eventuali altre chiavi versione-specifiche
-
Remediation fallisce con "Impossibile trovare jvm.dll"
- Verifica che una JRE/JDK 8 sia effettivamente installata
- Controlla manualmente in:
C:\Program FileseC:\Program Files (x86)per cartelleJava,Eclipse Adoptium,AdoptOpenJDK, ecc.
-
DOCFA continua a lamentare Java mancante
- Controlla nel registro:
CurrentVersion→ deve essere"1.5"BrowserJavaVersion→"1.5.0_16"RuntimeLib→ percorso valido dijvm.dll
- Controlla il log locale per dettagli sugli ultimi run:
C:\ProgramData\IntuneLogs\DOCFA_Java\DOCFA_Java_PR_YYYYMMDD.log
- Controlla nel registro: