Diventare maestri nella verifica della versione di PowerShell: Una guida completa per professionisti IT e MSP

Punti chiave

  • La verifica della versione di PowerShell è fondamentale per la compatibilità e la sicurezza del sistema.
  • Lo script automatizza la verifica di entrambe le versioni di PowerShell, Desktop e Core.
  • Utilizza variabili ambientali e un ipotetico cmdlet “Ninja-Property-Set” per la versatilità.
  • Progettato per PowerShell, versione 3 o successive, per assicurare la compatibilità con i sistemi moderni.
  • Offre un approccio più efficiente rispetto ai metodi di controllo manuale delle versioni.
  • Essenziale per gli amministratori IT e gli MSP per garantire la conformità e la sicurezza del sistema.
  • Si raccomanda l’uso regolare dello script per verificare costantemente lo stato di integrità del sistema.
  • L’integrazione di script come questo in piattaforme come NinjaOne può migliorare l’efficienza della gestione IT.

Il dinamismo della Tecnologia dell’informazione (IT) impone di adattare e comprendere continuamente gli strumenti e gli ambienti con cui interagiamo quotidianamente. Uno di questi strumenti, PowerShell, svolge un ruolo fondamentale nella gestione e nell’automazione dei sistemi Windows. La verifica della versione di PowerShell in uso non è solo una questione di conformità, ma anche un passo fondamentale per garantire la sicurezza e la compatibilità del sistema.

Background

PowerShell, il framework di Microsoft che consente di gestire l’automazione delle attività e la configurazione, è diventato parte integrante del panorama IT. Lo script in questione è progettato per verificare le versioni di PowerShell installate su un sistema, una attività di importanza significativa per i professionisti IT e i fornitori di servizi gestiti (MSP). Conoscere la versione di PowerShell aiuta a mantenere la compatibilità del sistema, a risolvere i problemi e a garantire l’utilizzo delle funzioni di sicurezza più recenti.

Lo script per la verifica della versione di PowerShell:

<#
.SYNOPSIS
    Saves PowerShell Desktop and/or Core Version(s) to a Custom Field.
.DESCRIPTION
    Saves PowerShell Desktop and/or Core Version(s) to a Custom Field.

.EXAMPLE
    (No Parameters)
    ## EXAMPLE OUTPUT WITHOUT PARAMS ##
    PowerShell Desktop: 5.1.19041.3570 - PowerShell Core: 7.3.9

PARAMETER: -CustomField "PowerShellVersion"
    Name of the custom field to save the version of PowerShell to.
.EXAMPLE
    -CustomField "PowerShellVersion"
    ## EXAMPLE OUTPUT WITH CustomField ##
    PowerShell Desktop: 5.1.19041.3570 - PowerShell Core: 7.3.9

.OUTPUTS
    None
.NOTES
    Minimum OS Architecture Supported: Windows 10, Windows Server 2012 R2
    Release Notes: Initial Release
By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use.
    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
    Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
#>

[CmdletBinding()]
param (
    [Parameter()]
    [String]$CustomField
)

begin {
    if ($env:customField) {
        $CustomField = $env:customField
    }
}
process {
    # Get PowerShell Desktop Version
    $PSDesktop = "PowerShell Desktop: $($PSVersionTable.PSVersion)"

    $PSVersionCF = if ($(Get-Command -Name "pwsh.exe" -ErrorAction SilentlyContinue)) {
        # Get PowerShell Core Version
        $pwshVersion = "$(pwsh.exe -version)" -split ' ' | Select-Object -Last 1
        $PSCore = "PowerShell Core: $($pwshVersion)"
        Write-Output "$PSDesktop - $PSCore"
    }
    else {
        Write-Output "$PSDesktop"
    }
    
    Write-Host "`n$PSVersionCF`n"

    if($PSVersionTable.PSVersion.Major -lt 3){
        Write-Error "Can only set Custom Fields on PowerShell Versions 3 or higher."
        exit 1
    }

    # Save Version(s) to custom field
    Ninja-Property-Set -Name $CustomField -Value $PSVersionCF
    
}
end {
    
    
    
}

 

Accedi a oltre 700 script nel Dojo NinjaOne

Ottieni l’accesso

Analisi dettagliata

Lo script per la verifica della versione di PowerShell inizia con CmdletBinding, uno standard di PowerShell, e con la dichiarazione di un parametro per un campo personalizzato. Il blocco ‘begin’ controlla la presenza di una variabile ambientale chiamata ‘customField’ e la imposta come $CustomField dello script, se presente.

Nel blocco “process”, lo script recupera innanzitutto la versione di PowerShell Desktop. Ulteriormente verifica la presenza di PowerShell Core cercando di trovare ‘pwsh.exe’. Se viene trovata, recupera la versione Core. Le versioni vengono quindi concatenate e visualizzate. In particolare, lo script controlla se la versione principale di PowerShell è inferiore alla 3, che è un prerequisito per impostare i campi personalizzati.

Infine, nel blocco “end”, lo script utilizza un ipotetico cmdlet “Ninja-Property-Set” per salvare queste versioni in un campo personalizzato, sfruttando il valore di $CustomField.

Casi d’uso potenziali

Immagina che un amministratore IT di una grande organizzazione debba assicurarsi che tutti i sistemi utilizzano versioni di PowerShell compatibili per una nuova distribuzione. Utilizzando questo script, possono verificare rapidamente le versioni di PowerShell nei vari sistemi, facilitando una distribuzione sicura e fluida.

Confronti

I metodi alternativi per eseguire la verifica della versione di PowerShell includono il controllo manuale o l’utilizzo di script diversi. Tuttavia, questo script semplifica il processo, offrendo una visione consolidata di entrambe le versioni di PowerShell Desktop e Core, una funzionalità che manca in molti altri approcci.

Domande frequenti

D1: Lo script per la verifica della versione di PowerShell può fare la differenza tra le versioni di PowerShell Desktop e Core? 
R1: Sì, identifica e visualizza distintamente entrambe le versioni.

D2: Cosa accade se PowerShell Core non è installato sul sistema? 
R2: Lo script visualizzerà solo la versione di PowerShell Desktop.

D3: Questo script è compatibile con le versioni precedenti di PowerShell? 
R3: Richiede la versione 3 o successive di PowerShell per essere pienamente operativo.

Implicazioni

L’utilizzo di versioni di PowerShell obsolete o incompatibili può causare vulnerabilità di sicurezza e problemi di compatibilità. Questo script aiuta a identificare in modo proattivo tali scenari, contribuendo a rendere più sicuro l’ambiente IT.

Raccomandazioni

Le best practice prevedono l’esecuzione regolare di questo script per la verifica delle versioni, soprattutto prima di implementazioni o aggiornamenti importanti. Si consiglia inoltre di integrare questo script nei regolari controlli di integrità del sistema.

Considerazioni finali

In un periodo in cui la gestione efficiente e sicura dell’IT è fondamentale, strumenti come NinjaOne offrono una piattaforma in grado di integrare tali soluzioni di scripting, garantendo una gestione semplificata e una maggiore sicurezza. La verifica della versione di PowerShell è una parte piccola ma importante nel mantenere l’integrità del sistema e NinjaOne può essere determinante per garantire che tali attività siano eseguite con facilità e precisione.

Passi successivi

La creazione di un team IT efficiente ed efficace richiede una soluzione centralizzata che funga da principale strumento per la fornitura di servizi. NinjaOne consente ai team IT di monitorare, gestire, proteggere e supportare tutti i dispositivi, ovunque essi si trovino, senza la necessità di una complessa infrastruttura locale.

Per saperne di più su NinjaOne Endpoint Management, fai un tour dal vivo, o inizia la tua prova gratuita della piattaforma NinjaOne.

Categorie:

Ti potrebbe interessare anche

×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.