Get-CimInstance non funziona quando viene eseguito da un'attività pianificata


1

Ho uno script PowerShell che esporta un elenco di tutti i servizi sul mio computer locale usando il seguente comando:

Get-CimInstance win32_service | Export-Csv $PSScriptRoot\Local\services.csv

Funziona bene quando lo eseguo sotto un account amministratore locale da un prompt di PowerShell. Ho provato a eseguirlo come operazione pianificata, utilizzando lo stesso account di amministratore locale per eseguire l'operazione pianificata e non viene generato alcun output nel file .csv.

So che l'operazione pianificata è in esecuzione OK, perché ci sono altri file di output che vengono aggiornati come mi aspetterei. Cosa c'è di diverso nell'esecuzione di questo script come attività pianificata che lo infrange?

AGGIORNARE : Ho eseguito lo script in entrambi i modi con ProcMon in esecuzione in background. L'unica differenza che ho notato è che il processo del task pianificato aveva un ID sessione di 0, dove come in esecuzione lo script aveva direttamente un ID sessione di 4.

Risposte:


1

Penso che il problema è che avevo segnato il compito di:

(o) Esegui se l'utente è connesso o meno

Secondo Microsoft ,

È possibile specificare che un'attività debba essere eseguita anche se l'account con cui è pianificata l'esecuzione dell'attività non è connesso quando l'attività viene attivata. Per fare ciò, seleziona il pulsante radio etichettato Esegui se l'utente è connesso o meno . Se questo pulsante di opzione è selezionato, le attività non verranno eseguite in modo interattivo. Per eseguire un'attività in modo interattivo, selezionare il Esegui solo quando l'utente è connesso pulsante di scelta.

La parte fondamentale di questa frase è questa:

Per eseguire un'attività in modo interattivo, selezionare il Esegui solo quando l'utente è connesso pulsante di scelta.

Immagino che PowerShell debba funzionare in modo interattivo per il Get-CimInstance cmdlet per funzionare correttamente. Ho cambiato il mio compito in Esegui solo quando l'utente è connesso e tutto sembra funzionare ora.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.