Sono da tempo alla ricerca di un metodo per la rimozione automatica di tutti i vecchi profili account, non in uso, dal disco fisso in modo da recuperare spazio, perché ogni profilo ha un suo peso, come vedremo dopo, e in certi computer aziendali, dove vi accedono decine di utenti, il disco fisso si riempie molto in fretta. In rete si trovano molti script che promettono la rimozione di questi vecchi profili utente, quando li ho provati sul campo mi hanno dato più problemi che benefici, oltre ad aver fatto qualche danno togliendo file e account che non dovevano essere toccati.
Al lavoro una serie di computer con Windows 10 avevano assegnato delle lettere di unità anche a quelle partizioni di sistema che solitamente ne sono prive. La cosa, oltre a creare confusione all'utente che poteva cercare di salvare dei dati in dischi che non erano adatti allo scopo, generava una lunga serie di avvisi di errore, per dischi fissi troppo pieni, nel portale di noi tecnici dove gestiamo i computer remoti. Così ho cercato i comandi giusti per rimuovere con PowerShell le lettere unità di troppo.
Quando il sistema operativo vede la presenza di troppi dispositivi dello stesso tipo, per esempio schede audio, cuffie e microfoni, può, in determinate occasioni o programmi, gestirli male e causarne un malfunzionamento, in genere mi capita con l'audio delle barre telefoniche o i programmi di chat aziendali. Si rende così necessario disattivare la periferica che crea il problema.
All'apertura di PowerShell 7 se compare un messaggio che segnala la presenza di una nuova versione di PowerShell è possibile eseguire l'aggiornamento, o eventualmente l'installazione se si usa ancora PowerShell 5, direttamente da PowerShell stesso.
Quando ci ritroviamo a dover scambiare dei file molto grossi con altre persone, il problema è sempre quello di come ridurne le dimensioni per trovare un qualche servizio, via mail o siti di condivisione dati, che accetti i nostri file e ne permetta l'invio. I file possono essere compressi e divisi, splittati, in varie parti di dimensioni ridotte più adatte al "trasporto", tramite un qualsiasi programma per la compressione dati ma se vogliamo questa operazione di suddivisione dei file la possiamo fare anche con PowerShell grazie al modulo FileSplitter.
Dopo che il cmdlet Send-MailMessage è diventato obsoleto, perché non garantiva più una comunicazione sicura con i server di posta, stavo cercando un modo, semplice, per inviare una email utilizzando PowerShell, finalmente ho trovato PoshMailKit di poshcodebear disponibile su GitHub. Nel titolo dell'articolo ho scritto "Gmail (e non solo)" perché lo script si dovrebbe (non posso garantirlo) poter adattare a qualsiasi server di posta SMTP di cui abbiate utenza, password e conosciate la porta utilizzata dal server SMTP. Con Libero e Gmail, quelli che avevo per provare, l'invio della posta ha funzionato.
Alcuni macchinari hanno un "bottone di sicurezza", da premere in caso di emergenza e anche "mister Burns" ne ha uno, quindi perché non dovrebbe avere qualcosa di simile anche il nostro sistema operativo? Ad esempio un "panic button", per automatizzare alcune operazioni difensive che possono essere utili se crediamo che improvvisamente un malware stia compromettendo il nostro computer.
In passato abbiamo visto come creare comandi personalizzati e come proteggere il terminale con una password, stavolta metteremo mano a PowerShell per integrare nel suo terminale Gemini, il chatbot di intelligenza artificiale di Google.
Al lavoro mi trovo a dover aggiungere un account locale amministratore in ogni computer, di una società che è stata acquisita, che ne risulta privo. Farlo manualmente diventa lungo e complesso, ripeterlo decine di volte diventa pesante, così ricorro a uno script PowerShell e al cmdlet New-LocalUser.
L'output di un comando che noi, o il sistema operativo, eseguiamo nel computer è il risultato generato da questi processi, può essere inviato a video, oppure stampato, per esempio, ci sono però alcuni comandi che mandano lunghe stringhe di dati sul monitor che, se devono essere consultati, diventa difficile leggerli tutti. Con PowerShell e il cmdlet Out-File possiamo reindirizzare l'output di questi comandi verso un file di testo da consultare in seguito o memorizzarlo per conservarlo.
Sono sempre alla ricerca di comandi e modi alternativi per fare certe operazioni durante il mio lavoro di assistenza remota, in questo articolo vado a utilizzare PowerShell per avviare i processi del sistema operativo, come aprire una cartella o un determinato file con il programma associato. Una difficoltà nel mio lavoro di supporto è quando non riesco a collegarmi al computer remoto, per qualsiasi motivo, e dall'altra parte del telefono trovo un utente molto poco pratico, per cui cercare un file, o un programma, nel computer o lanciare un qualsiasi comando è impossibile. Vediamo come usare il cmdlet Start-Process di PowerShell.
Spegnere e riavviare un computer, queste due semplici, in apparenza, operazioni rappresentano, in alcuni casi, la migliore soluzione per determinati problemi del computer, solo che certe persone non lo sanno fare in particolare il riavvio perché quando gli chiedo di farlo, in genere lo spengono e lo riaccendono. Ci sono poi quelli che, per motivi noti forse solo a loro, non li spengono mai, così gli aggiornamenti non si installano, le nuove policy aziendali non vengono recepite e gli eventuali problemi presenti non vengono spazzati via da uno spegni e riaccendi.
Quando al lavoro fornisco supporto remoto agli utenti, una cosa spesso complicata è mettermi in contatto con le persone. Se li chiami al telefono vedono un numero per loro strano e non rispondono, oppure hanno qualche app che blocca le chiamate, i messaggi via chat vengono ignorati, così mi capita di utilizzare uno script PowerShell per inviare, grazie a Ninja, un popup sullo schermo dell'utente "ricercato". Devo dire che alcuni utenti, nonostante io nel messaggio indicassi chiaramente chi ero e cosa volevo, si sono allarmati e hanno chiesto spiegazioni ai loro superiori o ai miei colleghi di sede.
Le operazioni pianificate, o scheduled task, sono utilizzate da Windows per eseguire periodicamente determinate operazioni, come l'aggiornamento di un browser, delle definizioni dell'antivirus, un backup dei file e tanto altro, in determinati orari o giorni della settimana. Anche se Windows ha una sua interfaccia, l'utilità di pianificazione, per gestire queste attività in questo articolo vedremo come fare tutto tramite PowerShell.
L'hash di un file è la sua impronta digitale, costituita in questo caso da una lunga serie di numeri e lettere, che identifica in modo univoco un file e certifica la sua integrità quando è appena stato scaricato da Internet, per esempio il file ISO di Windows 11 presente nel sito Microsoft, ma l'hash vale anche per qualsiasi eseguibile che installi un gioco o un programma nel computer. Se questa stringa non corrisponde al file appena scaricato, ci possono essere stati dei problemi durante il download che hanno danneggiato l'ISO, se il file eseguibile proviene da fonti non affidabili può essere stato alterato per nasconderci dentro un malware.
Ci sono certamente molti modi e molte applicazioni per visualizzare, archiviare e proteggere con password immagini e testi; se tuttavia volete farlo senza installare ulteriori programmi e ottenendo un file che non dia troppo nell'occhio, perché si presenta come uno "scostante" script PowerShell (che solitamente non contengono immagini e non sono protetti da password), potete usare WrapperShell, scaricabile da questo repository su GitHub (la versione in italiano è "WrapperShell-ita.ps1")..
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.