Mi è capitato più volte di dover convertire dei piccoli file di comando, come .bat o .cmd, in file eseguibili, perché avevo la necessità di eseguire dei comandi, all'avvio del sistema operativo, in modo del tutto invisibile all'utilizzatore del computer, oggi proveremo a convertire degli script VBS o i PS1 di PowerShell in eseguibili.
Leggete nelle conclusioni dell'articolo perché questo tipo di conversioni di script in eseguibili viene spesso bloccato dagli antivirus.
Aggiunto metodo di conversione tramite modulo di PowerShell e un sito Web.
Vbs To Exe
Vbs To Exe lo potete scaricare da Majorgeeks.com, deve essere installato ed è tradotto in italiano, basta selezionare il linguaggio una volta installato.
Il funzionamento è molto semplice, si possono trascinare i file VBS nella schermata principale del programma, selezionare delle icone personalizzate, scegliere il formato dell'eseguibile a 32 bit o 64 bit e se renderlo visibile o invisibile all'utente.
Nelle Impostazioni si può togliere il flag dalla casella Carica gli ultimi file aperti così ripartirete sempre con una interfaccia pulita e non ricordando quanto fatto in precedenza.

Ps1 to Exe
Praticamente analogo è il funzionamento di Ps1 to Exe nelle Informazioni sulla versione potete aggiungere dei dettagli sul file eseguibile che state creando.

Questo è il risultato di alcuni degli eseguibili che ho ho convertito, se volete vederne l'effetto vanno avviati da un prompt dei comandi, se create dei file che devono essere invisibili all'utente e magari eseguiti ad ogni avvio del sistema operativo basta metterli in esecuzione automatica.

N.B. Non posso garantire che i due programmi possano funzionare bene con tutti gli script esistenti, posso solo dire che durante le prove fatte sono sempre riusciti a creare l'eseguibile e questo si avviava senza problemi. Se avete questo tipo di esigenza non vi resta che provare i due programmi proposti.
Modulo ps2exe
Un altro metodo per la conversione degli script .ps1 di PowerShell è tramite l'installazione del modulo ps2exe.
Per farlo bisogna usare il comando Install-Module ps2exe, confermando quando richiesto, mentre Get-InstalledModule verifica che il modulo sia installato.

Sempre da PowerShell si avvia il comando win-ps2exe che apre l'interfaccia grafica, basta inserire il Source file con lo script da convertire, il nome e il percorso dell'eseguibile da creare e, volendo, i dettagli di Version, File description, Product name e Copyright che finiranno nelle proprietà dell'eseguibile.

Alla fine della conversione chiudete la finestra di PowerShell che si è aperta.

Il sito ps2exe
La conversione più semplice, dato che non richiedere programmi o installazione di moduli, è quella del sito sito ps2exe.azurewebsites.net.
Basta incollare il testo dello script, dare un nome al file eseguibile da creare e cliccare il pulsante Create EXE, il file exe finirà nella cartella dei Download.

Conclusioni
Attenzione che alcuni antivirus potrebbero segnalare dei falsi positivi durante la creazione degli eseguibili finali. Se riscontrate questo problema basta mettere nella lista delle esclusioni il file o la cartella di lavoro che avete scelto per il programma.
Come esempio potete guardare questo report della scansione di VirusTotal.com, se si trattasse di un eseguibile scaricato a Internet sarebbe preoccupante, dato che è una script creato da voi sapete bene cosa deve fare e perché non è pericoloso.
Perché lo rilevano e lo bloccano?
Perché molti malware vengono distribuiti utilizzando le stesse tecniche di compilazione e compressione dei dati, oppure avviati tramite PowerShell, o nello script sono presenti dei comandi ritenuti pericolosi, gli antivirus intercettano queste cose come sospette e bloccano il vostro eseguibile appena creato.Se ne volete sapere di più, anche se sono cose piuttosto difficili da leggere e capire (a volte anche per me), si può consultare la scheda behavior dell'analisi.