Microsoft Intune – Distribuire Platform Scripts e Remediations PowerShell

Distribuire script PowerShell in ambienti Windows offre numerosi vantaggi che migliorano l’efficienza e la gestione dei sistemi informatici all’interno di un’organizzazione. PowerShell, grazie alla sua potenza e flessibilità, consente agli amministratori di automatizzare una vasta gamma di attività amministrative, riducendo significativamente il carico di lavoro manuale e minimizzando il rischio di errori umani.

Uno degli scopi principali della distribuzione di script PowerShell è l’automazione delle operazioni ripetitive. Attività come la configurazione di impostazioni di sistema, la gestione degli account utente e l’applicazione di configurazioni possono essere eseguite in modo automatico, garantendo coerenza e risparmiando tempo prezioso.

Distribuzione di script PowerShell con Microsoft Intune

Il processo di distribuzione degli script inizia creando e caricando lo script PowerShell nel portale di Intune. Durante questa fase è cruciale configurare correttamente le impostazioni dello script, come l’ambiente di esecuzione e le opzioni di output. Questo garantisce che lo script funzioni correttamente e che si possano tracciare i risultati delle sue esecuzioni. Prima di procedere con la distribuzione su larga scala, è altamente consigliato testare gli script in ambienti di test. Questo passaggio aiuta a identificare e correggere eventuali errori, evitando interruzioni o problemi nei dispositivi degli utenti finali.

Microsoft Intune permette di utilizzare script non solo per dispositivi Windows, ma anche per altre piattaforme come macOS e Linux, ampliando così la flessibilità e la capacità di gestione all’interno della tua infrastruttura IT. Per Windows, Intune supporta principalmente script PowerShell, che consentono di automatizzare una vasta gamma di attività amministrative, dalla configurazione del sistema all’installazione di applicazioni. Questi script sono eseguiti tramite l’Intune Management Extension, garantendo che le operazioni vengano svolte in modo efficiente e sicuro sui dispositivi gestiti.

NOTA: Per quanto riguarda macOS, Intune utilizza shell script basati su Bash o Zsh mentre per Linux, Intune offre il supporto per shell script.

Prerequisiti per distribuire uno script PowerShell utilizzando Intune

Di seguito sono elencati i prerequisiti necessari per installare l’Intune management extension, che è il componente software che si occupa della distribuzione degli script PowerShell:

  • La macchina deve eseguire Windows 10 versione 1607 o successiva. Se i dispositivi sono registrati tramite bulk auto-enrollment, devono eseguire Windows 10 versione 1709 o successiva.
  • I dispositivi devono essere Entra joined, inclusi i dispositivi in modalità Entra Hybrid Join.
  • I dispositivi devono essere Entra Registrered.
  • I dispositivi devono essere registrati in Intune.
  • Sono supportati anche i dispositivi co-managed.

Distribuzione degli script PowerShell con Microsoft Intune

Dal portale di Microsoft Intune cliccate su Devices > Scripts and Remediations > Platform Scripts > Windows 10 and later.

Figura 1: Distribuzione di uno script di configurazione PowerShell per Windows

Inserite un nome ed una descrizione per lo script che intendete distribuire.

Figura 2: Nome e descrizione dello script

Io ho deciso di distribuire uno script che mappa un disco di rete ed una stampante condivisa. Vi scrivo qui sotto il listato:

Procedete al caricamento dello script e alle configurazioni richieste dal wizard. I campi da compilare sono:

  • Script Location: Sfogliate il percorso in cui avete posizionato lo script PowerShell. Lo script deve essere inferiore a 200 KB.
  • Run this script using the logged on credentials: Selezionate Sì per eseguire lo script con le credenziali dell’utente. Altrimenti, selezionate No (predefinito); lo script verrà eseguito nel contesto di sistema. Dovete decidere questa impostazione in base alle necessità perché ovviamente se scegliete di utilizzare le credenziali dell’utente, questo dovrà avere i permessi necessari per eseguire le operazioni previste dallo script.
  • Enforce script signature check: Selezionate Sì se lo script è firmato da una fonte attendibile; altrimenti selezionate No (predefinito) se non vi è alcuna esigenza in merito.
  • Run script in 64 bit PowerShell Host: Selezionate Sì per eseguire lo script in un ambiente PowerShell a 64 bit su un client a 64 bit. Altrimenti, selezionate No (predefinito) per eseguire lo script in un ambiente PowerShell a 32 bit.

Figura 3: Caricamento dello script PowerShell e relative configurazioni

Assegnate uno o più Scope Tag allo script.

Figura 4: Scope Tags dello script

Procedete quindi con l’assegnazione dello script ad un gruppo di utenti o dispositivi.

Figura 5: Assegnazione dello script ad un gruppo di utenti o dispositivi

Controllate le impostazioni e completate il wizard cliccando su Add.

Figura 6: Schermata finale del wizard id distribuzione dello script PowerShell

Figura 7: Creazione dello script completata con successo

Applicazione dello script ai dispositivi e agli utenti

Qui di seguito alcune considerazioni sull’applicazione degli script distribuiti tramite Microsoft Intune:

  • Se assegnate gli script di PowerShell al contesto utente e l’utente ha diritti di amministratore, lo script di PowerShell verrà eseguito con privilegi di amministratore per impostazione predefinita.
  • Per i dispositivi condivisi, lo script di PowerShell verrà eseguito per ogni nuovo utente che accede.
  • Se lo script è assegnato a un dispositivo, lo script di PowerShell viene eseguito senza accesso dell’utente.
  • Gli script di PowerShell vengono eseguiti prima dell’esecuzione delle app Win32. In altre parole, gli script di PowerShell vengono eseguiti per primi. Poi vengono eseguite le app Win32.
  • L’agente di Intune Management Extension verificherà con Intune ogni ora per controllare se sono state apportate modifiche allo script o se è stato assegnato un nuovo script. Questo processo verrà eseguito anche dopo ogni riavvio della macchina.
  • Gli script di PowerShell hanno un timeout di 30 minuti per l’esecuzione.
  • L’agente di Intune Management Extension verifica la presenza di nuovi script o modifiche dopo ogni riavvio. Dopo aver assegnato le policy ai gruppi di Microsoft Entra, viene eseguito lo script di PowerShell e vengono segnalati i risultati dell’esecuzione. Una volta eseguito, lo script non viene eseguito di nuovo, a meno che non sia presente una modifica nello script o nella policy.

Test di funzionamento

Dopo aver atteso che lo script venga applicato da Microsoft Intune, la mappatura di rete e la stampante condivisa saranno disponibili per l’utente, come mostrato nella figura sotto:

Figura 8: Mappatura di rete e stampante condivisa disponibili per l’utente

Remediations Script

Se vi state chiedendo a cosa servono i Remediations Script, disponibili nella stessa scheda da cui configurate i Platform Script, potete consultare il mio articolo Microsoft Intune – Proactive remediations in Endpoint Analitycs – ICT Power

Si tratta di script che è possibile distribuire dal portale di Intune e che hanno il compito di cercare e rimediare ai problemi più comuni che possono capitare ai dispositivi degli utenti, prima ancora che gli utenti se ne accorgano.

Per attivare le Proactive Remediations di Endpoint Analytics in Microsoft Intune, è necessario che gli utenti dei dispositivi dispongano di una delle seguenti licenze:

  • Windows 10/11 Enterprise E3 o E5 (incluse in Microsoft 365 F3, E3 o E5)
  • Windows 10/11 Education A3 o A5 (incluse in Microsoft 365 A3 o A5)
  • Windows 10/11 Virtual Desktop Access (VDA) per utente

Che come si può vedere dalla figura sotto, in questo momento io non ho 🙂

Attualmente Microsoft mette a disposizione un paio di script package in Proactive remediations:

  • Update stale Group Policies: questo package si occupa si controllare se le Group Policy sono state applicate più di 7 giorni prima. Trovate lo script alla pagina PowerShell scripts for Proactive remediations
  • Restart Office Click-to-run service: Se il servizio Click-to-run è stoppato, le applicazioni di Office non sia avviano e gli utenti cominciano a chiamare l’help desk.

Nella mia guida ho deciso di aggiungere uno script package che conterrà paio di script che si occuperanno di controllare i certificati scaduti e avviseranno gli utenti con un popup (toast notification) per avvertirli di rinnovare i certificati digitali scaduti. Gli script sono disponibili alla pagina PowerShell scripts for Remediations – Microsoft Intune | Microsoft Learn

Figura 9: Remediations script nel portale di Microsoft Intune

Trovate il resto della guida alla pagina Microsoft Intune – Proactive remediations in Endpoint Analitycs – ICT Power 🙂

Conclusioni

La gestione degli script PowerShell tramite Microsoft Intune rappresenta una strategia potente ed efficace per amministrare e automatizzare le configurazioni dei dispositivi all’interno di un’organizzazione. Attraverso questa guida, abbiamo esplorato come sfruttare appieno le potenzialità di Intune per distribuire, monitorare e aggiornare gli script PowerShell, garantendo al contempo sicurezza e conformità agli standard aziendali.

Implementare script PowerShell in Intune consente non solo di semplificare le operazioni quotidiane, ma anche di rispondere in modo rapido e flessibile alle esigenze in continua evoluzione dell’ambiente IT. L’automazione di compiti ripetitivi riduce il margine di errore umano, migliora l’efficienza operativa e libera risorse preziose che possono essere dedicate ad attività a maggior valore aggiunto.