Skip to content

Latest commit

 

History

History
221 lines (168 loc) · 8.75 KB

File metadata and controls

221 lines (168 loc) · 8.75 KB

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