Oppure

Loading
26/11/20 13:17
dylan666
Ciao a tutti,
sto cercando di crearmi una interfaccia "rapida" per i comandi che uso più comunemente in Powershell usando questo progetto di partenza:
youtube.com/…

Funziona a meraviglia con il comando Get-Process dell'esempio.
Ho però i seguenti problemi:

1) se dovessi digitare male il comando (es. Get-Processo) come faccio ad avere in finestra l'errore restituito da Powershell?
Ovviamente la domanda non è solo per i comandi digitate male ma è volta a intercettare qualunque messaggio per qualunque errore

2) come mai alcuni comandi come Get-Module non restituiscono alcun testo sebbene siano corretti e vengano eseguiti se lanciati nel classico prompt di Windows?

Grazie in anticipo a chi vorrà aiutarmi.
aaa
26/11/20 19:23
Thejuster
1) se dovessi digitare male il comando (es. Get-Processo) come faccio ad avere in finestra l'errore restituito da Powershell?
Ovviamente la domanda non è solo per i comandi digitate male ma è volta a intercettare qualunque messaggio per qualunque errore


Non voglio sempre iniziare con discorsi di critiche e bla bla bla. Ma...
Chiunque abbia almeno aperto un libro di programmazione sa come gestire un eccezione.

Indizio: Try Catch (e gestisci l'eccezione)


2) come mai alcuni comandi come Get-Module non restituiscono alcun testo sebbene siano corretti e vengano eseguiti se lanciati nel classico prompt di Windows?


A questo non so risponderti.
Ma potresti leggerti i metodi che utilizza questa libreria e capirne il perché.

Se esiste direttamente il prompt di powershell ci sarà un motivo.
con questa libreria puoi inviare comandi e gestire determinate cose ma non tutto credo.
mire.forumfree.it/ - Mire Engine
C# UI Designer
27/11/20 14:52
dylan666
Sul Try/Catch hai ragione, era l'uovo di colombo, mi ero fissato più sul redirect dell'output di Powershell che nella gestione dell'errore in sé lato VB.

Sul punto 2, io sono arrivato a questa documentazione:
docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/…

Non capisco però perché non dovrei avere TUTTI gli output dei comandi, a prescindere da quali siano.
Mi veniva in mente: non è che l'output del comando Get-Module non viene gestito correttamente dalla parte PSObject, pur non andando in errore?
Se così fosse, hai suggerimenti sul come intercettare o identificare il tipo di ouptut che arriva in PSObject prima di passarlo allo StringBuilder() ?

Spero di essermi spiegato, l'essere autodidatta di certo non mi aiuta
aaa
27/11/20 16:35
Thejuster
Tranquillo sono anche io autodidatta :k: ci siamo passati tutti.
Ti sto rispondendo dal cell al momento non ho il computer a portata di mano ma,
Osservando velocemente le referenze,
Ho notato un metodo.

InvocationStateChanged.

Credo che questo handle venga chiamato quando viene eseguita un'azione tramite il metodo invoke()
Ovvero quello per eseguire lo script.

Prova as eseguire un override del metodo,
Ebad inserire un messagebox esempio per vedere se quando viene invocato lo script viene eseguito proprio quel metodo, da quel punto ti basta usare l'argomento nel parametro usato dalla funzione ed accedere a tutte le altre voci e variabili.
In seguito da questo void puoi gestire eventuali eccezioni e capire perché alcuni comandi vengono eseguiti, mentre altri no.

Forse per una questione di sicurezza alcuni comandi non vengono eseguiti, ma non so dirti precisamente il problema dove possa essere, non mai usato powershell in questo modo.
Ultima modifica effettuata da Thejuster 27/11/20 16:43
mire.forumfree.it/ - Mire Engine
C# UI Designer