Recuperare i risultati di un processo pianificato in Windows PowerShell
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