Enterprise Mode per Internet Explorer 11 Deep Dive

Introduzione

Internet Explorer e Microsoft Edge possono essere usati per supportare le app Web legacy, infatti utilizzando l’elenco dei siti modalità Enterprise è possibile fare in modo che determinati siti Web si aprano automaticamente in Internet Explorer 11 anziché in Microsoft Edge oppure eseguirne il rendering con una configurazione del browser modificata, progettata per emulare Windows Internet Explorer 7 o Windows Internet Explorer 8.

Per informazioni sull’Enterprise Mode Internet Explorer 11 è possibile fare riferimento alla sezione Enterprise Mode for Internet Explorer 11 su Microsoft Docs, mentre nell’articolo Gestione della Modalità Enterprise di Internet Explorer Versione 11 pubblicato su ICTPower.it vengono illustrati i passi per implementare tale funzionalità.

In questo articolo analizzeremo più in dettaglio il funzionamento dell’Enterprise Mode di Internet Explorer 11 e come risolvere eventuali problematiche che possono verificarsi.

Argomenti

  • Prerequisti per l’utilizzo dell’Enterprise Mode per Internet Explorer
  • Creazione di una Enterprise Mode site list
  • Modifica del rendering dei siti web tramite l’Enterprise Mode per Internet Explorer 11
  • Testing dei i siti per la compatibilità
  • Utilizzo della Enterprise Mode site list in Internet Explorer
  • Utilizzo dell’Enterprise Mode per i Siti Intranet e Visualizzazione di Compatibilità

Prerequisti per l’utilizzo dell’Enterprise Mode per Internet Explorer

L’Enterprise Mode per Internet Explorer è supportata nei sistemi operativi Windows 7, Windows 8.1 e Windows 10 e per essere attivata richiede una site list che può essere impostata tramite Group Policy o tramite chiave di registro.

Per quanto riguarda la group policy esiste la seguente disponibile sia a livello computer che utente:

Administrative Templates\Windows Components\Internet Explorer\Use the Enterprise Mode IE website list

Mentre per quanto riguarda le chiavi di registro è possibile utilizzare la seguente chiave per specificare la site list per l’utente corrente:

HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main\EnterpriseMode

Oppure utilizzare la seguente chiave per specificare la site list per tutti gli utenti:

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Main\EnterpriseMode

La site list può essere memorizzata in una delle posizioni:

  • Server web HTTPS (per esempio https://srvweb.ictpower.it/emie/sites.xml), questa è la posizione consigliata per una maggiore protezione da eventuali manomissioni dei dati.
  • Share nella rete locale (per esempio \\ictpower.it\NETLOGON\emie\sites.xml)
  • File locale (per esempio file:///c:\\Users\\<user>\\Documents\\emie\\sites.xml)

Si noti che tutte le configurazioni gestite centralmente avranno la priorità su quelle impostate localmente.

Per maggiori dettagli si veda Turn on Enterprise Mode and use a site list.

Creazione di una Enterprise Mode site list

Per la creazione di una Site List occorre utilizzare il tool Enterprise Mode Site List Manager di cui attualmente esistono due versioni l’Enterprise Mode Site List Manager (schema v.2) o l’Enterprise Mode Site List Manager (schema v.1) che permettono di creare file xml con due versioni di schema differenti:

Sia lo schema per la modalità Enterprise versione 1 (v.1) che lo schema per la modalità Enterprise versione 2 (v.2) supportato su Windows 7, 8.1 e 10, la versione 2 è stata introdotta con Windows 10 1511 e prevede una serie di miglioramenti quindi è consigliabile utilizzare la seconda versione, a riguardo si vedano i post New Enterprise improvements coming to IE11 on Windows 7 and 8.1 e How Microsoft Edge and Internet Explorer 11 on Windows 10 work better together in the Enterprise.

E’ anche possibile non utilizzare l’Enterprise Mode Site List Manager per creare il file XML per la Site List, ma utilizzare semplicemente il Blocco note o un’altra applicazione per modificare i file XML. Inoltre come indicato in Add multiple sites to the Enterprise Mode site list using a file and the Enterprise Mode Site List Manager (schema v.2) è anche possibile creare un file TXT che potrà poi essere utilizzato con l’Enterprise Mode Site List Manager (schema v.2) per aggiungere più siti contemporaneamente tramite la voce di menù Bulk add from file, ma si noti che tale file di testo consente solo di aggiungere più siti contemporaneamente e non è possibile utilizzarlo per distribuire l’Enterprise Mode per Internet Explorer.

Modifica del rendering dei siti web tramite l’Enterprise Mode per Internet Explorer 11

L’Enterprise Mode consente di eseguire il rendering dei siti usando versioni emulate di Internet Explorer 7 o Internet Explorer 8 sebbene i siti siano eseguiti in Internet Explorer 11.

L’IE7 Enterprise Mode attiva la Visualizzazione Compatibilità di Internet Explorer 7 o Internet Explorer 5 e la Visualizzazione Compatibilità sceglie la modalità documento da usare in base alla presenza del tag DOCTYPE nel codice della pagina con le seguenti regole:

  • se è presente il tag DOCTYPE il rendering delle pagine Web viene eseguito utilizzando l’IE7 document mode;
  • se il tag DOCTYPE è assente il rendering delle pagine Web viene eseguito utilizzando l’IE5 document mode.

L’IE8 Enterprise Mode offre il rendering di Internet Explorer 8 utilizzando la stringa user agent di Internet Explorer 8.

Il doctype contrazione di Document Type Declaration (DTD) è, o dovrebbe essere, la prima riga di codice di un documento HTML e consiste in una dichiarazione circa il linguaggio utilizzato, la versione di tale linguaggio, la lingua, etc ed indica al browser il tipo di documento di cui si tratta. Di seguito un esempio di doctype:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
http://www.w3.org/TR/html4/loose.dtd>

Per ulteriori informazioni si veda Tips and tricks to manage Internet Explorer compatibility in cui viene indicato che oltre alle modalità IE7 Enterprise Mode e IE8 Enterprise Mode (<emie>) è possibile anche specificare il document mode (<docMode>) in cui eseguire il rendering della pagina:

Scendendo nel dettaglio, come indicato in Fix web compatibility issues using document modes and the Enterprise Mode site list quando Internet Explorer 11 usa una Site List il browser carica la pagina nella modalità documento specificata come se fosse specificata tramite un meta tag X-UA-Compatible sul sito. L’Enterprise Mode ha la precedenza sul document mode, questo fa sì che i siti che sono inclusi nella Site List dell’Enterprise Mode non siano interessati.

Di seguito un esempio di file XML in versione 2 per una Site List:

Per capire se è meglio usare le modalità documento o la modalità Enterprise occorre tenere presente che la funzionalità Enterprise Mode (<emie>) offre i livelli di compatibilità di Internet Explorer8 o Internet Explorer7, mentre le funzionalità Document Mode (<docMode>) consentono di impostare la compatibilità indipendentemente dalla versione di Internet Explorer eseguita. In generale è possibile iniziare il processo di testing della compatibilità come segue:

  • se vengono utilizzati principalmente Internet Explorer 8 o Internet Explorer 7 iniziare il testing usando l’Enterprise Mode;
  • se vengono utilizzati principalmente Internet Explorer 9 o Internet Explorer 10 iniziare il testing usando il Document Mode.

Per eventuali errori di convalida del sito durante la creazione della Site List si faccia rifermento al documento Fix validation problems using the Enterprise Mode Site List Manager.

Attivando l’Enterprise Mode nella barra degli indirizzi è visualizzata un’icona, ciò non accade col Document Mode:

Nel documento Deprecated document modes and Internet Explorer 11 è possibile ricavare il flow chart in base a cui Internet Explorer 11 esegue il rendering, di seguito viene riportata la sezione relativa all’Enterprise Mode:

Di seguito invece la sezione del flow chart in base a cui Internet Explorer 11 esegue il rendering relativa all’Document Mode:

Testing dei i siti per la compatibilità

Come indicato nel documento Fix web compatibility issues using document modes and the Enterprise Mode site list è possibile eseguire un testing approfondito dei siti premendo F12 In Internet Explorer 11 per aprire gli Strumenti di sviluppo e selezionando il tab Emulazione:

Tramite la Group Policy a livello computer o a livello utente Administrative Templates\Windows Components\Internet Explorer\Let users turn on and use Enterprise Mode from the Tools menu è possibile consentire agli utenti di visualizzare e utilizzare l’opzione Modalità Enterprise dal menu Strumenti, in questo modo è possibile testare anche il profilo browser Enterprise.

Si tenga presente che se si imposta su un sito manualmente un profilo browser mentre è attiva la group policy Let users turn on and use Enterprise Mode from the Tools menu potrebbero verificarsi dei malfunzionamenti se su tale sito vengono poi configurate impostazioni di compatibilità abilitando l’Enterprise Mode tramite una Site List. In questo caso occorre impostare manualmente sul sito un profilo browser congruente con quello presente nella Site List e se l’Enterprise Mode era stata disabilitata manualmente è necessario ripristinare l’emulazione tramite CTRL+Maiusc+L eventualmente riabilitando temporaneamente la group policy Let users turn on and use Enterprise Mode from the Tools menu per consentire la riabilitaizone dell’Enterprise Mode.

Per trovare l’ipostazione di compatibilità più adatta per un determinato sito si tengano presenti le indicazioni contenute in Tips and tricks to manage Internet Explorer compatibility:

“Run the site in each document mode until you find the mode in which the site works.

You will need to make sure the User agent string dropdown matches the same browser version as the Document mode dropdown. For example, if you were testing to see if the site works in Internet Explorer 10, you should update the Document mode dropdown to 10 and the User agent string dropdown to Internet Explorer 10.

If you find a mode in which your site works, you will need to add the site domain, sub-domain, or URL to the Enterprise Mode Site List for the document mode in which the site works, or ask the IT administrator to do so. You can add the x-ua-compatible meta tag or HTTP header as well.”

Per semplificare la configurazione delle impostazioni di compatibilità dei siti utilizzati dagli utenti aziendali è anche disponibile l’Enterprise Site Discovery Toolkit che consente di raccogliere informazioni da Internet Explorer 8,9,10 e 11 sui siti visitati e di analizzarli per zona o per dominio. Il Toolkit fornisce inoltre informazioni su come il sito è progettato e utilizzato da Internet Explorer che possono essere quindi utilizzate per popolare la Site List dell’Enterprise Mode. Per impostazione predefinita Internet Explorer non raccoglie tali dati, ma occorre abilitare la raccolta, i dati verranno raccolti senza notifiche all’utente su tutti i siti visitati tranne durante la navigazione InPrivate Mode o per le zone o domini per cui è stata impostata l’esclusione.

Utilizzo della Enterprise Mode site list in Internet Explorer

Dopo aver configurato Internet Explorer per utilizzare l’Enterprise Mode tramite l’utilizzo di una site list centralizzata occorre tenere presente le seguenti:

  • Internet Explorer 11 cerca una site list formattata correttamente circa 65 secondi dopo l’avvio;
  • Internet Explorer 11 carica e usa una site list se ne questa ha un numero di versione diverso da quella correntemente attiva;
  • Internet Explorer 11 ricerca una nuova site list solo al suo avvio.

Dopo aver scaricato la site list questa viene archiviata in locale nel computer in modo che la funzionalità Enterprise Mode possa essere utilizzata anche se il percorso del file centralizzato non è disponibile.

Come indicato in Check for a new Enterprise Mode site list xml file Internet Explorer cerca il file xml della site list nelle nella cache container, nella local cache e quindi sul server.

Se viene trovato un file xml della site list nella cache container Internet Explore attende 65 secondi e quindi controlla se esiste nella local cache una nuova versione del file xml della site list copiato dal server in base alle regole di caching standard e se tale file ha un numero di versione differente verrà copiato nella cache containter e utilizzato. Ciò significa che se esiste già un file xml della site list quanto Internet Explorer viene avviato nel caso esista anche una versione nuova di tale file per 65 secondi la funzionalità Enterprise Mode utilizzerà in file esistente invece di quello nuovo.

Se necessario è possibile forzare la ricerca di una site list eseguendo le seguenti operazioni:

  1. Chiudere tutte istanze di Internet Explorer, ad esempio utilizzando il seguente comando:
    taskkill /F /IM iexplore.exe
  2. Clear della cache di Internet Exoplorer, ad esempio utilizzando il seguente comando:
    RunDll32.exe InetCpl.cpl, ClearMyTracksByProcess 8
  3. Eliminare la chiave di registro HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\EnterpriseMode\CurrentVersion, ad esempio con il seguente comando:
    REG DELETE “HKCU\Software\Microsoft\Internet Explorer\Main\EnterpriseMode” /v CurrentVersion /f

Nel caso in cui si riscontrino problemi con l’Enterprise Mode è possibile tentare di risolverli rimuovendo le Group Policy di abilitazione, ad esempio spostando temporaneamente il computer in una Organizational Unit (OU) in cui tali group policy non sono applicate, è possibile eliminare le seguenti chiavi di registro e riavviare il computer:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\EmieModeList

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\EmieSiteList

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\EmieUserList

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\EmieModeList

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\EmieSiteList

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\EmieUserList

Utilizzo dell’Enterprise Mode per i Siti Intranet e Visualizzazione di Compatibilità

Per impostazione predefinita i siti che appartengono alla Intranet vengono visualizzati in Visualizzazione Compatibilità una funzionalità introdotta con i Internet Explorer 8 che consente di eseguire il rendering di una pagina Web in modo quasi identico a Internet Explorer 7. Scendendo nel dettaglio Visualizzazione compatibilità modifica il modo in cui il browser interpreta il codice scritto in CSS, HTML e DOM (Document Object Model) per fare in modo che l’interpretazione sia come quella che viene eseguita da Internet Explore 7. Tuttavia non tutto il codice subisce questo cambio di interpretazione questo significa che le modifiche introdotte in Internet Explorer 8 relative alla gestione degli ActiveX, del parser, AJAX, JavaScript, networking e sicurezza potrebbero causare un rendering della pagina web in modo differente da Internet Explorer 7, per maggiori informazioni si veda What Is Compatibility View?

Se si desidera utilizzare l’Enterprise Mode per i Siti Intranet conviene disabilitare la Visualizzazione di Compatibilità per i siti Intranet. Infatti è preferibile a controllare le impostazioni di compatibilità esclusivamente tramite l’Enterprise Mode in quanto è più duttile rispetto la Visualizzazione Compatibilità che consente di gestire esclusivamente dominii e non dominii secondari o URL.

E’ possibile disabilitare la Visualizzazione Compatibilità per la zona Intranet abilitando la seguente group policy a livello computer o utente:

Administrative Templates\Windows Components\Internet Explorer\compatibility view\Turn on Internet Explorer Standards Mode for local intranet

“If you enable this policy setting, Internet Explorer uses the current user agent string for local intranet content. Additionally, all local intranet Standards Mode pages appear in the Standards Mode available with the latest version of Internet Explorer. The user cannot change this behavior through the compatibility view Settings dialog box.”

Inoltre sono disponibili anche le seguenti Group Policy a livello computer o utente che possono essere utilizzate per gestire la Visualizzazione Compatibilità e il rilevamento della zona Intranet:

Administrative Templates\Windows Components\Internet Explorer\compatibility view\Turn off compatibility view

If you enable this policy setting, the user cannot use the compatibility view button or manage the compatibility view sites list.”

Administrative Templates\Windows Components\Internet Explorer\Internet Control Panel\Security Page\Turn on automatic detection of Intranet

If you disable this policy setting, automatic detection of the Intranet is Turned off, and Intranet mapping rules are applied however they are configured.”

Administrative Templates\Windows Components\Internet Explorer\Internet Control Panel\Security Page\Intranet Sites: Include all local (intranet) sites not listed in other zones

If you disable this policy setting, local sites which are not explicitly mapped into a zone will not be considered to be in the intranet Zone (so would typically be in the Internet Zone).”

A riguardo si vedano anche il post The Intranet Zone e le indicazioni contenute nella KB303650 Intranet site is identified as an Internet site when you use an FQDN or an IP address di cui vengono riportati alcuni passaggi, ma si legga l’intera KB per ulteriori informazioni e suggerimenti:

“When you access a local area network (LAN), an intranet share, or an intranet Web site by using an Internet Protocol (IP) address or a fully qualified domain name (FQDN), the share or Web site may be identified as in the Internet zone instead of in the Local intranet zone.”

“This behavior may occur if an FQDN or IP address contains periods. If an FQDN or IP address contains a period, Internet Explorer identifies the Web site or share as in the Internet zone.”

“To work around this issue, add the appropriate IP address range or fully qualified domain names (FQDNs) to your local intranet. Or change the security level of the Internet zone.”

“This behavior is by design.”

Conclusioni

Sebbene l’Enterprise Mode sia un ottimo strumento per risolvere eventuali compatibilità di alcuni siti con i browser di nuova generazione come Internet Explorer 11 o Edge va precisato che questa funzionalità nasce per risolvere problematiche relative a codice legacy. Di conseguenza se possibile occorre risolvere i problemi di incompatibilità nei siti coinvolti eventualmente ricorrendo all’uso di meta tag x-ua-compatible o HTTP header, a riguardo si veda Use the Meta Tag to Ensure Future Compatibility.

Riferimenti