Recuperare i risultati di un processo pianificato in Windows PowerShell

Completato

Poiché i processi pianificati possono essere eseguiti quando Windows PowerShell non è in esecuzione, i risultati vengono archiviati su disco in file XML. Se si crea un processo usando il parametro –MaxResultCount, la shell elimina automaticamente i file XML vecchi per fare spazio a quelli nuovi. Questa eliminazione garantisce che non esistano più file XML del numero specificato nel parametro –MaxResultCount.

Al termine di un processo pianificato, l'esecuzione del comando Get-Job in Windows PowerShell consente di visualizzare i risultati del processo pianificato come oggetto processo.

Ecco un esempio:

PS C:\> Get-Job

Id     Name      PSJobTypeName   State         HasMoreData     Location       Command
--     ----      -------------   -----         -----------     --------       -------
6      LocalDir  PSScheduledJob  Completed     True            localhost      Dir C:\

È possibile usare Receive-Job per ottenere i risultati di un processo pianificato. Se non si specifica –Keep, è possibile ricevere i risultati di un processo una sola volta per sessione di Windows PowerShell. Tuttavia, poiché i risultati vengono archiviati su disco, si può aprire una nuova sessione di Windows PowerShell e ricevere di nuovo i risultati. Ad esempio:

PS C:\> Receive-Job -id 6 -Keep


    Directory: C:\


Mode                LastWriteTime     Length Name                    
----                -------------     ------ ----                    
d----         7/26/2021  12:33 AM            PerfLogs                
d-r--        11/28/2021   1:54 PM            Program Files           
d-r--        12/28/2021   2:22 PM            Program Files (x86)     
d----        11/16/2021   9:33 AM            reports                 
d----         9/18/2021   7:28 AM            Review                  
d----          1/5/2022   7:49 AM            scr                     
d----          1/5/2022   7:50 AM            scrx                    
d-r--         9/15/2021   8:16 AM            Users                   
d----        12/19/2021   3:24 AM            Windows                 
-a---          1/1/2022   9:39 AM    2892628 EventReport.html        
-a---          1/2/2022  12:37 PM         82 Get-DiskInfo.ps1        
-a---        12/30/2021  12:33 PM        246 test.ps1

A ogni esecuzione del processo pianificato, Windows PowerShell crea un nuovo oggetto processo per rappresentare i risultati del processo eseguito più di recente. È possibile usare Remove-Job per rimuovere un processo ed eliminarne i risultati dal disco, come illustrato nell'esempio seguente:

PS C:\> Get-Job -id 6 | Remove-Job