Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOCFA4Java

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 di jvm.dll e dei valori attesi nel registro
  • ProactiveRemediation_Remediation.ps1 - crea/aggiorna le chiavi di registro richieste, può esportare un file .reg e produce un file .json con 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.dll sotto C:\Program Files\ (installazione 64-bit) e non esiste alcuna JVM x86 sotto C:\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.

DOCFA – Configurazione Java 1.5 “fake” tramite Intune Proactive Remediations

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.).

Contenuto del pacchetto

  • 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.

Funzionamento degli script

Detection (DOCFA_Java_Detection.ps1)

  • Verifica la presenza della chiave:
    • HKLM\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment\1.5
  • Controlla il valore:
    • RuntimeLib → percorso verso jvm.dll
  • Esito:
    • Exit 0 se RuntimeLib punta a un file jvm.dll esistente
    • Exit 1 se la chiave manca, il valore è vuoto o il file non esiste
  • Output:
    • Messaggi strutturati ([INFO], [WARN], [ERROR]) visibili nei report Intune
    • Log locale in C:\ProgramData\IntuneLogs\DOCFA_Java\

Remediation (DOCFA_Java_Remediation.ps1)

  1. 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.dll con pattern tipico di Java 8 (1.8, 8.0, jre8, jdk8)
    • Seconda passata (fallback): qualsiasi jvm.dll con percorsi legati a java, jre, jdk, adoptium, temurin, openjdk, corretto, zulu
    • Se non trova nulla → exit 1 con errore
  2. 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
  3. Aggiornamento chiavi di registro

    Vengono create/aggiornate le chiavi (sotto HKLM\SOFTWARE\WOW6432Node\JavaSoft):

    • Java Plug-in\1.5.0_16

      • JavaHomeJavaHome individuato
      • UseJava2IExplorer1
      • HideSystemTrayIcon0
    • Java Runtime Environment

      • CurrentVersion"1.5"
      • BrowserJavaVersion"1.5.0_16"
    • Java Runtime Environment\1.5 e Java Runtime Environment\1.5.0_16

      • JavaHomeJavaHome individuato
      • RuntimeLib → percorso completo di jvm.dll
      • MicroVersion"0"
    • Java Runtime Environment\1.5.0_16\MSI

      • INSTALLDIRJavaHome\
      • SYSTRAY, EULA, IEXPLORER, MOZILLA, JAVAUPDATE, AUTOUPDATECHECK, JU"0"
  4. Output

    • Messaggi strutturati nei report Intune
    • Log locale con rotazione e retention

Logging

Gli script generano log in due modalità:

  1. 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.
  2. 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

Questa struttura garantisce:

  • Log sintetici e ordinati in Intune
  • Storico locale utile per troubleshooting approfondito
  • Controllo su dimensione massima e durata dei log

Come configurare in Intune Proactive Remediations

  1. Portale Intune

    • Vai in:
      Endpoint securityEndpoint analyticsProactive remediations
  2. 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."
  3. Script

    • Detection script: carica DOCFA_Java_Detection.ps1
    • Remediation script: carica DOCFA_Java_Remediation.ps1
  4. 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 sotto WOW6432Node ma la vista HKLM è corretta da 64 bit)
  5. Scope (tag, gruppi)

    • Assegna la remediation ai gruppi di dispositivi che utilizzano DOCFA4.
  6. Schedule

    • Ad esempio: ogni giorno o ogni settimana, a seconda della frequenza con cui ti aspetti aggiornamenti/installazioni di Java.

Verifica del funzionamento

  1. 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
  2. Sul client

    • Controlla le chiavi di registro:
      • HKLM\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment\1.5
      • HKLM\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

Note e personalizzazioni

  • 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-JvmDllPath limitandola 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 (attualmente 1.5.0_16)
    • eventuali altre chiavi versione-specifiche

Troubleshooting rapido

  • Remediation fallisce con "Impossibile trovare jvm.dll"

    • Verifica che una JRE/JDK 8 sia effettivamente installata
    • Controlla manualmente in:
      • C:\Program Files e C:\Program Files (x86) per cartelle Java, 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 di jvm.dll
    • Controlla il log locale per dettagli sugli ultimi run:
      • C:\ProgramData\IntuneLogs\DOCFA_Java\DOCFA_Java_PR_YYYYMMDD.log

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages