Applicazione di script con Controllo app per le aziende
Nota
Alcune funzionalità di Controllo app per le aziende sono disponibili solo in versioni specifiche di Windows. Altre informazioni sulla disponibilità delle funzionalità di Controllo app.
Importante
Opzione 11 Disabilitato: l'imposizione degli script non è supportata in Windows Server 2016 o in Windows 10 1607 LTSB e non deve essere usata in tali piattaforme. In questo modo si verificheranno comportamenti imprevisti di imposizione dello script.
Panoramica dell'imposizione degli script
Per impostazione predefinita, l'imposizione degli script è abilitata per tutti i criteri di Controllo app, a meno che l'opzione 11 Disabled:Script Enforcement non sia impostata nei criteri. L'imposizione degli script di Controllo app prevede un handshake tra un host di script con riconoscimento automatico, ad esempio PowerShell, e Controllo app. Tuttavia, l'host di script gestisce il comportamento effettivo di imposizione. Alcuni host di script, ad esempio Microsoft HTML Application Host (mshta.exe), bloccano l'esecuzione di tutto il codice se sono attivi criteri UMCI di Controllo app. La maggior parte degli host di script chiede innanzitutto a Controllo app se è necessario consentire l'esecuzione di uno script in base ai criteri di Controllo app attualmente attivi. L'host di script blocca, consente o modifica la modalità di esecuzione dello script per proteggere al meglio l'utente e il dispositivo.
La convalida per gli script firmati viene eseguita usando l'API WinVerifyTrust. Per passare la convalida, la radice della firma deve essere presente nell'archivio radice attendibile nel dispositivo e i criteri di Controllo app devono consentirla. Questo comportamento è diverso dalla convalida del controllo app per i file eseguibili, che non richiede l'installazione del certificato radice.
Controllo app condivide il registro eventi AppLocker - MSI e Script per tutti gli eventi di imposizione degli script. Ogni volta che un host di script chiede a Controllo app se uno script deve essere consentito, viene registrato un evento con la risposta Controllo app restituito all'host di script. Per altre informazioni sugli eventi di imposizione degli script di Controllo app, vedere Informazioni sugli eventi di Controllo app.
Nota
Quando viene eseguito uno script non consentito dai criteri, Controllo app genera un evento che indica che lo script è stato "bloccato". Tuttavia, il comportamento effettivo di imposizione dello script viene gestito dall'host dello script e potrebbe non bloccare completamente l'esecuzione del file.
Tenere anche presente che alcuni host di script possono modificare il comportamento anche se un criterio di controllo app è in modalità di controllo. È consigliabile esaminare le informazioni specifiche dell'host di script in questo articolo e testare accuratamente l'ambiente per assicurarsi che gli script da eseguire funzionino correttamente.
Host script con riconoscimento automatico che fanno parte di Windows
PowerShell
I criteri di Controllo app devono consentire l'esecuzione di tutti gli script di PowerShell (.ps1), moduli (con estensione psm1) e manifesti (con estensione psd1) con diritti di linguaggio completo.
I criteri di Controllo app devono anche consentire tutti i moduli dipendenti caricati da un modulo consentito e le funzioni del modulo devono essere esportate in modo esplicito per nome quando viene applicato Il controllo app. I moduli che non specificano alcuna funzione esportata (nessun elenco di nomi di esportazione) vengono ancora caricati, ma non sono accessibili funzioni del modulo. I moduli che usano caratteri jolly (*) nel nome non verranno caricati.
Qualsiasi script di PowerShell non consentito dai criteri di Controllo app viene ancora eseguito, ma solo in modalità linguaggio vincolato.
Il dot-sourcing di PowerShell non è consigliato. Gli script devono invece usare i moduli di PowerShell per fornire funzionalità comuni. Se un file di script consentito tenta di eseguire file di script di origine dot, anche tali file di script devono passare i criteri.
Controllo app inserisce PowerShell interattivo in modalità linguaggio vincolato se vengono applicati criteri UMCI di controllo app e qualsiasi criterio di controllo app attivo consente l'imposizione degli script, anche se tale criterio è in modalità di controllo. Per eseguire PowerShell interattivo con diritti di linguaggio completo, è necessario disabilitare l'imposizione degli script per tutti i criteri.
Per altre informazioni, vedere Informazioni sulle modalità del linguaggio e la modalità del linguaggio vincolato.
VBscript, cscript e jscript
I criteri di Controllo app devono consentire l'esecuzione di tutti gli script usando l'host script basato su Windows (wscript.exe) o l'host script basato su microsoft console (cscript.exe). In caso contrario, lo script è bloccato.
Microsoft HTML Application Host (MSHTA) e MSXML
Tutta l'esecuzione del codice tramite MSHTA o MSXML viene bloccata se sono attivi i criteri di controllo delle app con imposizione dello script, anche se tale criterio è in modalità di controllo.
Oggetti COM
Controllo app applica inoltre un elenco di autorizzazioni limitate per gli oggetti COM che i criteri di Controllo app possono espandere o limitare ulteriormente. L'imposizione degli oggetti COM non è influenzata dall'opzione 11 Disabled:Script Enforcement. Per altre informazioni su come consentire o negare oggetti COM, vedere Consentire la registrazione di oggetti COM.
Script che non sono controllati direttamente da Controllo app
Controllo app non controlla direttamente l'esecuzione del codice tramite il processore dei comandi di Windows (cmd.exe), inclusi .batfile di script /.cmd. Tuttavia, tutto ciò che uno script batch di questo tipo tenta di eseguire è soggetto al controllo Controllo app. Se non è necessario eseguire cmd.exe, è consigliabile bloccarlo in modo definitivo o consentirlo solo in base all'eccezione in base al processo chiamante. Vedere Usare un controllo app per le aziende per controllare plug-in, componenti aggiuntivi e moduli specifici.
Controllo app non controlla gli script eseguiti tramite un host di script non illuminato, ad esempio molti motori Java o Python di terze parti. Se i criteri di Controllo app consentono l'esecuzione di un host di script non illuminato, è possibile consentire in modo implicito l'esecuzione di tutti gli script attraverso tale host. Per gli host di script non Microsoft, è consigliabile verificare con il fornitore del software se gli host di script sono abilitati per i criteri di controllo delle app.