Risoluzione dei problemi relativi agli script di PowerShell

<img style="”float:" right;” src="”https://www.recastsoftware.com/wp-content/uploads/2021/10/Recast-Logo-Dark_Horizontal.svg”" alt="&quot;Immagine&quot;" height="”43″" width="”150″">

Risoluzione dei problemi relativi agli script PowerShell di ConfigMgr e Intune

Di recente ho lavorato a diversi progetti in cui ho dovuto risolvere gli script di PowerShell in luoghi a cui non avevo accesso per "vedere" cosa stava succedendo. Questo è stato in realtà molto utile per migliorare le mie capacità di PowerShell, poiché mi sono reso conto che dovevo includere molta più registrazione e trovare ulteriori modi per testare.

In questa pagina, l'obiettivo è illustrare diversi metodi per assistere nella risoluzione dei problemi degli script, quando non è semplice come aprire PowerShell ed eseguirlo come utente connesso.

Ecco alcuni luoghi comuni in cui ti imbatterai in script di cui non avrai la massima visibilità e che possono rendere difficile la risoluzione dei problemi.

  • Script di Intune
    • Aggiungi script
      • Viene eseguito da "C:Programmi (x86)Microsoft Intune Management ExtensionPoliciesScripts"
  • ConfigMgr
  • Attività pianificate

Il più delle volte, sfruttando questi strumenti avrai gli script in esecuzione come SYSTEM. Attività pianificate che puoi impostare per l'esecuzione come SYSTEM o un account di servizio, che consiglierei di sfruttare gli account di servizio gestiti di gruppo.

Metodi che ho trovato utili:

  • Trascrizione PowerShell
  • Registrazione personalizzata
  • Sfruttare il Software Center
    • Fornire un ambiente della sequenza di attività per testare gli script
    • Avvio di ISE o VSCode come SISTEMA per gli script di test

demo

Abilita la trascrizione PS con l'esecuzione degli script

Creeremo uno script di esecuzione che abiliti la trascrizione di PowerShell, puoi trovare il
File di script su GitHub

Puoi quindi copiare il codice RAW o inserire il collegamento al codice RAW nell'importazione:

Risoluzione dei problemi 01

Risoluzione dei problemi 02

Poiché sappiamo di volere solo 2 opzioni per il parametro, precompiliamole, fai clic su modifica, scegli il tipo di dati: Elenco, quindi aggiungi Abilita e Disabilita:

Risoluzione dei problemi 03

Una volta terminato, apparirà così:
Risoluzione dei problemi 04

Ora scegliamo una macchina di prova ed eseguiamo lo script con il valore di abilitazione:
Risoluzione dei problemi 05

E completato con Abilita:
Risoluzione dei problemi 06

Diamo un'occhiata al client, questo è il nostro log personalizzato integrato nello script che abbiamo appena aggiunto:

Risoluzione dei problemi 07

Quindi, per generare un registro di trascrizione di PowerShell, ho eseguito nuovamente lo script di esecuzione. Nella cartella che abbiamo specificato per ospitare i log di trascrizione, troviamo:
Risoluzione dei problemi 08

Elementi di configurazione

Risoluzione dei problemi 09

Script della sequenza di attività

Per prima cosa mostrerò esempi di alcuni script e come vengono eseguiti.

Quindi, pur non essendo tecnicamente uno script, un comando PowerShell eseguito da un passaggio della riga di comando:
Risoluzione dei problemi 10

Lì vedi che quando esegui un comando PowerShell tramite la riga di comando, nessuno script viene creato temporaneamente per eseguirlo, a differenza di uno script incorporato:

Risoluzione dei problemi 12

E qui uno script all'interno di un pacchetto, come previsto, esaurisce la posizione del pacchetto:

Risoluzione dei problemi 11

Ancora una volta, abbiamo sfruttato la trascrizione di PowerShell per vedere da dove provenivano gli script, il contesto in cui erano in esecuzione e l'output di scrittura generato dallo script.

In sintonia

Con InTune, ho creato due script, uno per abilitare la trascrizione di PowerShell e uno per disabilitare.

Una cosa che ho imparato sull'utilizzo di PowerShell Script con Intune, non si sa mai quando verrà eseguito o con quale frequenza. Ecco perché la registrazione è così importante. Sfrutto CMTrace Style per accedere a tutti i miei script in base a La funzione di Ryan Ephgrave.

Un'altra cosa che ho imparato sulla creazione di script per Intune, progettarli come un elemento di configurazione. Cosa intendo con questo? Lo script deve seguire un modello.

  • rilevamento
    • Lo script si applica a questa macchina. Mentre sei sicuro, puoi creare gruppi in Intune, ma inserire la logica nello script è sempre una buona idea.
  • Scoperta
    • Verifica se la macchina è già conforme (se l'obiettivo finale del tuo script è già stato raggiunto)
  • Rimedio
    • Esegui il contenuto dello script per raggiungere l'obiettivo desiderato

Per Intune, distribuirò il Enable-PSTranscription.ps1 sceneggiatura

Risoluzione dei problemi 13

La prima volta che lo script viene eseguito, registra utilizzando la funzione e configura PS Transcription, che quindi eseguirà ulteriori registrazioni ogni volta.

Nell'immagine sottostante, puoi vedere il file di registro creato dallo script stesso ogni volta che lo script viene eseguito con la registrazione e, nel registro inferiore, il registro di trascrizione per quell'esecuzione dello script.

Risoluzione dei problemi 14

Osservando la registrazione che ho aggiunto allo script, puoi vedere come segue il processo di rilevamento e correzione. La prima volta che viene eseguito, scopre che è "Non conforme", quindi "Ripara" abilitando la trascrizione. La seconda esecuzione, scopre che è già conforme ed esce.

Seguendo questo metodo sarà possibile ridurre il carico sui dispositivi gestiti di Intune, in particolare per gli script complicati che potrebbero bloccare un dispositivo endpoint per un po' ogni volta che lo script viene eseguito.

Suggerimenti per la risoluzione dei problemi

Circa Recast Software
1 organizzazione su 3 che utilizza Microsoft Configuration Manager si affida a Right Click Tools per far emergere le vulnerabilità e rimediare più rapidamente che mai.
Scarica strumenti gratuiti
Richiedi prezzi

Scopri come Right Click Tools sta cambiando il modo in cui vengono gestiti i sistemi.

Aumenta immediatamente la produttività con la nostra Community Edition limitata e gratuita.

Inizia oggi con Right Click Tools:

Condividi questo:

Supporto

  • Questo campo serve per la convalida e dovrebbe essere lasciato inalterato.

Contatti

  • Questo campo serve per la convalida e dovrebbe essere lasciato inalterato.

Inviando questo modulo, comprendi che Recast Software può elaborare i tuoi dati come descritto nel Recast Software politica sulla riservatezza.

it_ITItalian