Il cestino di Windows è una cartella nascosta, presente in ogni hard disk del computer, che contiene, temporaneamente, almeno sino a quando non lo svuotiamo, i file che abbiamo cancellato dal sistema operativo. Questi file cancellati, che possiamo ripristinare in caso di necessità, occupano uno spazio predefinito nel nostro hard disk e per recuperarlo dobbiamo svuotare il cestino o utilizzare la pulizia disco di Windows.
Non guardo quasi mai nel cestino di Windows e non mi ero accorto che in quello del disco D era presente una cartella nascosta, di oltre 10 GB, contente numerosi file e cartelle, che non potevo cancellare in nessun modo perché non ne ero il proprietario. Dopo vari tentativi ero riuscito a diventare proprietario solo della cartella principale, ma non riuscivo a far ereditare i permessi alle altre cartelle che vi erano contenute. Rifare l'operazione per ogni singola cartella era impensabile.
Può capitare di voler trovare, in un file video o audio, il momento in cui una certa parola o frase viene detta, che si tratti di una videolezione o un film o una registrazione personale o il testo di una canzone. Per farlo esistono programmi che estraggono l'audio dal filmato (se si tratta di un video), lo associano come trascrizione testuale al video (o al file audio) e consentono una ricerca per parola o frase. Una applicazione gratuita e in italiano che consente di farlo in modo semplice ed efficace è Clipchamp.
Al lavoro, a seguito del trasloco di sede del cliente, mi sono trovato nella necessità di installare velocemente la nuova stampante di rete e di eliminare quelle vecchie che non erano più presenti. Per mia fortuna si trattava in tutti e due i casi di stampanti Kyocera perché la procedura utilizzata si adatta bene ai modelli di questa marca e, teoricamente, anche a quelli di altri produttori, ma ho riscontrato delle differenze nei driver forniti che non mi hanno permesso di provare e capire se potesse adattarsi in qualche modo. Se avete modelli di altre marche non vi resta che provare e vedere se trovate dei driver più adatti allo scopo di quelli che ho provato io.
Abbiamo visto in questo articolo come aggiungere delle altre lingue al sistema operativo per cambiarne l'interfaccia e tradurla in una lingua che ci serve per lavoro o studio. Vediamo ora come fare la stessa operazione tramite PowerShell.
Il visualizzatore eventi, questo "misterioso", per molti, raccoglitore di informazioni di tutto quello che accade nel sistema operativo, dalle installazioni dei programmi, agli errori con relative schermate blu di Windows. Leggere e capirne il contenuto non è semplice, anche perché il Visualizzatore Eventi non è che offra delle grandi possibilità (comode) di salvataggio dei dati presenti. PowerShell può darci una mano per estrarre dei dati più specifici.
In Windows, non è sempre facile o attuabile l'impostazione dei giusti permessi di accesso ai programmi, differenziando in modo granulare quali applicazioni condividere e di quali limitare l'utilizzo, soprattutto se tali programmi non prevedono autenticazione all'avvio o se si condivide l'account con altre persone o se si tratta di programmi non ancora installati. Altre volte si potrebbe voler impedire a processi noti (non di sistema) di partire in automatico in background, senza che l'utente possa intervenire. In tutti questi casi, per impostare dei blocchi che richiedano autenticazione, senza addentrarsi nella gestione dei permessi di Windows, senza bisogno di essere admin e senza ricorrere a programmi di terze parti, è possibile usare GuardShell (disponibile anche in versione italiana).
Quando andiamo a scaricare l'immagine ISO di Windows 11 dalla pagina dei download Microsoft, oppure la troviamo da altre fonti, una verifica che possiamo fare per controllare che sia originale e non sia stata danneggiata durante il download o alterata per qualsiasi motivo, compreso l'inserimento di un malware, è di controllare il suo hash con PowerShell.
Con la tipologia "file canarino" (canary) si intendono file dal contenuto irrilevante che vengono usati come "sentinelle" per monitorare eventi all'interno di una cartella: la loro cifratura da parte di un ransomware, l'esfiltrazione durante un attacco hacker, la rimozione dolosa o accidentale, innescheranno un allarme che avviserà l'utente (o l'amministratore di rete) che qualcosa di sospetto sta accadendo in quella cartella. Si possono anche impostare misure difensive che attivano una reazione automatica in base al tipo di allarme, senza richiedere l'intervento dell'operatore.
Il principale limite della linea di comando (CLI) è quello di avere una usabilità piuttosto limitata per l'utente medio, che non sempre è in grado di interagire con gli script e il terminale. Per ovviare a tale limite, senza rinunciare alle enormi potenzialità della CLI, è possibile, usando Windows Forms, creare delle GUI (interfacce grafiche) con pulsanti, menu, caselle di testo, etc. che agevolano la fruizione di script in PowerShell preimpostati, sempre modificabili e ulteriormente espandibili.
Ogni giorno vi trovate a dover convertire decine di documenti Office in file PDF per poterli poi archiviare, o spedire via mail ai clienti, va bene che ci sono le stampanti virtuali che creano i PDF, però quanto tempo perdete ad aprire il singolo file di Office, inviarlo in stampa e convertirlo in PDF, oppure salvarlo in formato PDF se avete delle versioni recenti della suite di programmi per l'ufficio. Utilizzando un paio di script PowerShell è possibile convertire, in una sola volta, gruppi di file Office in formato PDF attendendo solo qualche momento a seconda del numero di file presenti.
Ormai viviamo circondati dai QR code, che altro non sono che delle piccole immagini che possono contenere dati e informazioni di vario tipo, come la password del nostro Wi-fi di casa che non vogliamo comunicare ai nostri ospiti, informazioni sull'azienda o un link Web da raggiungere. Dopo aver visto come crearli online, ora vediamo come farlo con PowerShell localmente nel nostro computer.
Tra le tante cose curiose, e magari inutili per alcuni, che si possono fare con PowerShell, vi è anche la possibilità di ascoltare i file MP3. Chiaramente non avete un player audio completo come VLC, per esempio, dove potete scegliere i brani, fermarli o modificare il volume, PowerShell si limita a riprodurre i brani che trova nella cartella che gli indicate nello script e per fermarli dovete solo chiudere PowerShell.
La presenza di una richiesta di password è indice di protezione e di accesso controllato; perché allora non impostarne una anche per la shell, che è uno degli strumenti più cruciali per la sicurezza del nostro PC? L'ideale è che si tratti di una password diversa da quella dell'utente, in modo che se l'account viene compromesso, non è comunque automatico poter accedere anche alla shell con la medesima password.
Una delle cose più difficili da ricordare, per me, di PowerShell è la sintassi diversa dei cmdlet rispetto ai vecchi comandi DOS a cui sono abituato. Così mi sono messo a cercare uno script in grado di creare un menu, con varie opzioni, che mi permetta di avviare i cmdlet più utili per il mio lavoro.
Avere un profilo PowerShell consente di snellire l'uso della shell e costruirsi il proprio "coltellino svizzero" di funzioni e comandi (o meglio, "cmdlet" come si chiamano nel gergo di Powershell), rendendo l'uso del terminale più rapido e "accogliente" per le proprie esigenze. Useremo PowerShell 5.1, comunemente presente nei recenti sistemi Windows, ma la procedura è facilmente adattabile anche a PowerShell Core 7 (per il quale, ad esempio, il percorso del file del profilo è differente: $HOME\Documents\PowerShell).
In questo articolo andremo a vedere come creare un certificato personale per firmare digitalmente uno script PowerShell per permettere la sua esecuzione in ambienti particolarmente restrittivi. L'esecuzione di script PowerShell è normalmente disattivata, permettere l'esecuzione di tutti gli script può non essere la soluzione più adatta, in termini di sicurezza, magari possiamo scegliere un approccio più morbido per eseguire script firmati da noi.
Ogni periferica che colleghiamo al computer, in particolare cellulari, pendrive, cuffie e microfoni, viene registrata da Windows e lascia una traccia del vostro passaggio. Anche se questi dispositivi, una volta scollegati, sono nascosti, basta abilitare l'opzione nella gestione dispositivi per vederli nuovamente. Inoltre mi è capitato di riscontrare dei problemi di funzionamento di alcuni (vecchi) applicativi aziendali, le barre telefoniche, quando troppe cuffie e microfoni "fantasma" erano presenti e provocavano problemi con l'audio. Così se vogliamo non far sapere che qualcosa è stato collegato al computer, oppure riscontriamo degli strani problemi legati alle periferiche, è necessario fare pulizia.
Se pensate che una password non sia sufficiente per proteggere un file importante o volete salvarlo nel cloud senza dover ricordare una password, ma nemmeno lasciandolo in chiaro, allora potete ricorrere al semplice programma che vi suggeriremo e a un breve script PowerShell per manipolare la "genetica del file". Il "genoma" di ogni file è fatto di bit, che nella loro semplice binarietà rendono possibili le molteplici "combinazioni genetiche" che denotano in modo peculiare e unico ogni file. Il "microscopio" per analizzare i bit è uno strumento imprescindibile per le analisi di digital forensics e solitamente viene indicato come "hex editor", ossia editor esadecimale, con chiaro riferimento alla codifica esadecimale solitamente utilizzata per leggere i byte.
Al lavoro mi capita spesso di ricevere richieste di supporto, nella maggior parte dei casi da persone che lavorano da casa, perché non riescono a raggiungere un indirizzo di qualche sito. Questo è causato dai server DNS che non riescono, per qualsiasi motivo, a riconoscere l'indirizzo Web che abbiamo inserito e quindi a convertirlo nel suo indirizzo IP e a dirigervi il traffico permettendoci di raggiungerlo. Per risolvere il problema, una volta scoperto il reale indirizzo IP del sito, basta modificare il file hosts e inserire i dati trovati con i comandi utilizzati.
Ogni computer, collegato in una rete di lavoro o casalinga, deve aver un proprio indirizzo IP privato per essere identificato in modo univoco all'interno della stessa rete. Quando vi collegate a Internet acquisite anche un indirizzo pubblico che serve al vostro provider per "dirigere il traffico" e per riconoscere il computer quando vi collegate a qualche sito o servizio.
In questo articolo andremo a raccogliere una serie di comandi, utilizzabili da PowerShell, per conoscere meglio le singole componenti hardware del nostro computer. Ci sono molti altri sistemi, e programmi, per estrarre lunghi e complicati report che contengono tutte le caratteristiche di un computer, ma proprio per la loro complessità, o per il fatto che non vogliamo installare un programma per avere un singolo dato che ci serve, utilizzeremo la riga di comando di PowerShell.
Il Terminale di Windows 11 permette di avviare PowerShell e il prompt dei comandi, per esempio, dispone di una barra funzioni, nella parte alta, da cui aprire altri Tab o richiamare i vari comandi e ambienti avviabili dal Terminale stesso, oltre a permettere di chiudere il programma. Ma cosa succede se questa barra, per qualche motivo, sparisce?
Quando si prepara un computer nuovo, dopo l'installazione di Windows vanno aggiunti un numero imprecisato di programmi, però può sempre capitare di dimenticarsi di avviare l'installazione di qualcosa e, soprattutto, stancarsi di fare click su ogni richiesta che appare. Girovagando per il Web ho trovato su Reddit, a cui riconosco i meriti iniziali, uno script che permette di installare in maniera silenziosa, cioè senza intervento dell'utente, tutti quei programmi che prevedono questa opzione, mentre per gli altri comparirà la normale procedura d'installazione. In questo modo ridurrete il numero di conferme da dare e sarete sicuri di installare tutti i software che vi servono.
Il cmdlet get-childitem è l'equivalente, con alcune migliorie, del comando dir che si utilizzava una volta per elencare i file presenti nel disco fisso o in alcune cartelle. Vediamo alcuni esempi su come utilizzarlo in PowerShell.