Diventare maestri nelle attività pianificate in Windows con PowerShell: Una guida per i professionisti IT

Punti chiave

  • Efficienza di PowerShell: Lo script mostra l’efficienza di PowerShell nella gestione delle attività pianificate sui sistemi Windows.
  • Gestione delle attività migliorata: Offre informazioni dettagliate sulle attività pianificate, superando i metodi tradizionali della interfaccia grafica.
  • Parametri flessibili: Include opzioni per filtrare le attività in base all’origine Microsoft e allo stato di disattivazione.
  • Requisito di accesso amministrativo: Richiede l’esecuzione con privilegi di amministrazione per ottenere tutte le funzionalità.
  • Output personalizzabile: Fornisce le opzioni per inviare le informazioni sull’attività all’host o per salvarle in un campo personalizzato.
  • Sicurezza e conformità: Contribuisce alle attività di auditing ai fini della sicurezza e della conformità.
  • Reportistica automatizzata: Semplifica il processo di generazione dei report sulle attività pianificate.
  • Integrazione con NinjaOne: Evidenzia la compatibilità e le funzionalità avanzate dello script con gli strumenti di gestione IT di NinjaOne.
  • Ampia compatibilità: È compatibile con Windows 10 e Windows Server 2012 R2 e versioni successive.
  • Best practice: Sottolinea l’importanza degli audit periodici e di un’attenta gestione dei dati di output per la sicurezza.

La gestione efficace delle attività pianificate in Windows è un aspetto importante dell’amministrazione del sistema e offre visibilità sulle attività automatizzate che mantengono l’infrastruttura IT in funzione. PowerShell, un potente strumento di scripting, svolge un ruolo fondamentale in questo ambito, offrendo una flessibilità e una profondità che supera i tradizionali approcci basati sull’interfaccia grafica.

Background

Questo script PowerShell è stato progettato per i professionisti IT e i fornitori di servizi gestiti (MSP) che necessitano di un modo efficiente per recuperare e gestire le attività pianificate sui sistemi Windows. La possibilità di elencare, analizzare e, a scelta, modificare le attività pianificate è fondamentale per mantenere l’integrità, la sicurezza e le prestazioni del sistema. Lo script risponde a tali esigenze offrendo una panoramica dettagliata delle attività pianificate, con la possibilità di includere o escludere le attività in base a criteri specifici.

Lo script per le attività pianificate:

<#
.SYNOPSIS
    Retrieves a list of scheduled tasks and outputs the list into the activity log. This list can optionally be saved to a Custom Field.
.DESCRIPTION
    Retrieves a list of scheduled tasks and outputs the list into the activity log. This list can optionally be saved to a Custom Field.
.EXAMPLE
    (No Parameters)
    
    Scheduled Task(s) Found!

    TaskName                          TaskPath  State
    --------                          --------  -----
    Firefox Background Update 3080... \Mozilla\ Ready

PARAMETER: -IncludeMicrosoft
    Includes Scheduled Tasks created by Microsoft in the report.

PARAMETER: -IncludeDisabled
    Includes Scheduled Tasks that are currently disabled in the report.

PARAMETER: -CustomFieldName "ReplaceMeWithAnyMultilineCustomField"
    Name of a multiline custom field to save the results to. This is optional; results will also output to the activity log.

.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()]
    [Switch]$IncludeMicrosoft = [System.Convert]::ToBoolean($env:includeMicrosoftTasks),
    [Parameter()]
    [Switch]$IncludeDisabled = [System.Convert]::ToBoolean($env:includeDisabledTasks),
    [Parameter()]
    [String]$CustomFieldName
)

begin {
    # Get CustomFieldName value from Dynamic Script Form.
    if ($env:customFieldName -and $env:customFieldName -notlike "null" ) { $CustomFieldName = $env:customFieldName }

    # Some Scheduled Tasks require Local Admin Privileges to view.
    function Test-IsElevated {
        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
        $p = New-Object System.Security.Principal.WindowsPrincipal($id)
        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
    }

    # Initialize Generic List for Report
    $Report = New-Object System.Collections.Generic.List[String]
}
process {
    if (-not (Test-IsElevated)) {
        Write-Error -Message "Access Denied. Please run with Administrator privileges." -Category PermissionDenied -Exception (New-Object -TypeName System.UnauthorizedAccessException)
        exit 1
    }

    # By default, we'll exclude tasks made by Microsoft. They don't always put themselves down as an author.
    if (-not $IncludeMicrosoft) {
        $ScheduledTasks = Get-ScheduledTask | Where-Object { $_.Author -notlike "Microsoft*" -and $_.TaskPath -notlike "\Microsoft*" }
    }
    else {
        $ScheduledTasks = Get-ScheduledTask
    }

    # We should ignore disabled tasks unless told otherwise.
    if (-not $IncludeDisabled) {
        $ScheduledTasks = $ScheduledTasks | Where-Object { $_.State -notlike "Disabled" }
    }

    # The activity log isn't going to fit all this output, so we'll trim it if it's too large.
    if ($ScheduledTasks) {
        $FormattedTasks = $ScheduledTasks | ForEach-Object {
            $Name = if (($_.TaskName).Length -gt 30) { ($_.TaskName).Substring(0, 30) + "..." }else { $_.TaskName }
            $Path = if (($_.TaskPath).Length -gt 30) { ($_.TaskPath).Substring(0, 30) + "..." }else { $_.TaskPath }

            [PSCustomObject]@{
                TaskName = $Name
                TaskPath = $Path
                State    = $_.State
            }
        }

        Write-Host "Scheduled Task(s) Found!"
        $Report.Add(( $FormattedTasks | Format-Table TaskName, TaskPath, State -AutoSize | Out-String ))
    }
    else {
        $Report.Add("No Scheduled Tasks have been found.")
    }

    # Output our results.
    Write-Host $Report

    # Save our results to a custom field.
    if ($CustomFieldName) {
        Ninja-Property-Set -Name $CustomFieldName -Value $Report
    }
}
end {
    
    
    
}

 

Accedi a oltre 700 script nel Dojo di NinjaOne

Ottieni l’accesso

Analisi dettagliata

Lo script per le attività pianificate inizia con CmdletBinding, che consente di utilizzarlo come cmdlet PowerShell con vari parametri. I parametri includono flag per includere attività Microsoft e quelle disattivate e un’opzione per salvare l’output in un campo personalizzato.

Nel blocco “begin”, lo script verifica la presenza di privilegi di amministratore, un prerequisito per accedere a tutte le attività pianificate. Si passa quindi al blocco “process”, dove è presente la funzionalità principale. In questo caso, filtra le attività in base all’input dell’utente, escludendo le attività Microsoft o quelle disattivate, come specificato. Lo script tronca in modo intelligente i nomi delle attività e i percorsi per una migliore leggibilità e raccoglie questi dati in un report.

Nel blocco ‘end’, il report viene inviato all’host e, facoltativamente, salvato in un campo personalizzato, per soddisfare le diverse esigenze di reportistica.

Casi d’uso potenziali

Considera un amministratore IT che deve verificare le attività pianificate su più server per garantire la conformità alle policy aziendali. Eseguendo questo script, possono raccogliere e analizzare rapidamente le informazioni sulle attività, identificare quelle non autorizzate o potenzialmente dannose e intraprendere le azioni necessarie.

Confronti

I metodi tradizionali di gestione delle attività pianificate prevedono spesso controlli manuali o l’utilizzo dell’interfaccia grafica di Windows Task Scheduler. Questo script, tuttavia, automatizza il processo e offre maggiore flessibilità, soprattutto in ambienti con numerosi server.

Domande frequenti

  • Lo script può essere eseguito su qualsiasi versione di Windows?
    • Supporta Windows 10 e Windows Server 2012 R2 e versioni successive.
  • È necessario eseguire lo script con privilegi di amministratore?
    • Sì, per un accesso completo a tutte le attività.
  • L’output dello script per le attività pianificate può essere personalizzato?
    • Sì, attraverso il parametro $CustomFieldName.

Implicazioni

L’automazione della gestione delle attività aumenta la sicurezza del sistema, consentendo verifiche regolari e una rapida identificazione delle anomalie. Tuttavia, gli amministratori devono prestare attenzione all’output dello script, poiché potrebbe contenere informazioni sensibili sulle operazioni del sistema.

Raccomandazioni

  • Esegui sempre lo script con privilegi amministrativi per avere una panoramica completa.
  • Verifica regolarmente le attività pianificate, soprattutto in ambienti con modifiche frequenti.
  • Utilizza l’opzione di output dei campi personalizzati per ottenere report e analisi dettagliate.

Considerazioni finali

In un’era in cui l’automazione e la sicurezza sono essenziali, questo script PowerShell è una testimonianza delle capacità di strumenti come NinjaOne. NinjaOne è in grado di semplificare ulteriormente tali processi, integrandosi perfettamente con script come questo per fornire soluzioni complete di gestione IT. Sfruttando gli script, i professionisti IT possono non solo garantire operazioni efficienti, ma anche rafforzare la loro posizione di sicurezza, una necessità nell’attuale panorama digitale in rapida evoluzione.

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.