
Ti sei mai trovato impantanato in noiose attività al computer? Non sei il solo! La buona notizia è che con un piccolo aiuto dall’intelligenza artificiale (IA), puoi semplificare e automatizzare le tue attività Windows usando gli script di PowerShell, liberando tempo prezioso per attività più importanti.
Panoramica di PowerShell: il tuo alleato per l’automazione
PowerShell funge sia da potente shell a riga di comando sia da linguaggio di scripting completo incorporato in Windows, offrendo notevoli soluzioni amministrative e di automazione. Secondo Microsoft, è uno strumento che può trasformare il modo in cui gestisci le attività sul tuo computer.

Con PowerShell puoi creare script, file autosufficienti contenenti comandi e istruzioni, per automatizzare qualsiasi cosa, dalla gestione di base dei file alle complesse operazioni di sistema.
Per chi è alle prime armi con gli script, sono disponibili online numerosi script PowerShell pre-scritti. Ad esempio, il PowerShell Scripts Repository contiene oltre 500 script gratuiti progettati per assistere in varie attività, tra cui il monitoraggio dello spazio su disco, l’elenco dei programmi installati e l’organizzazione delle foto in base alla data di creazione.
Sebbene questi script pronti all’uso siano preziosi, il vero potenziale di PowerShell risiede nella capacità di creare script personalizzati adatti alle proprie esigenze specifiche: è qui che l’intelligenza artificiale diventa un punto di svolta!
Sfruttare l’intelligenza artificiale per generare script PowerShell personalizzati
Immagina di dover organizzare migliaia di file recuperati da un disco rigido danneggiato. Invece di passare ore a padroneggiare la sintassi di PowerShell o a cercare lo script preesistente ideale, ho utilizzato ChatGPT per creare uno script personalizzato.
Per la mia specifica esigenza, ovvero ordinare vari tipi di file (come immagini, audio e documenti), ho creato un prompt chiaro e conciso per l’IA:

Ecco cosa ho voluto includere nel mio prompt AI:
- Istruzioni per la gestione dei file che non rientrano in nessuna categoria.
- Il compito esatto di organizzare i file in base alle loro estensioni.
- Una ripartizione delle categorie e dei tipi di file per ciascun gruppo.
L’intelligenza artificiale ha generato rapidamente uno script PowerShell efficace che ha affrontato il mio compito di organizzazione dei file:
# Define the source folder as the current directory where the script is executed$sourceFolder = $PSScriptRoot# Define category folders and their associated file extensions$categories = @{ "Images" = @(".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp", ".svg", ".ico", ".raw", ".cr2", ".nef", ".heic", ".psd", ".ai", ".eps") "Documents" = @(".pdf", ".docx", ".doc", ".txt", ".rtf", ".xlsx", ".xls", ".pptx", ".ppt", ".odt", ".ods", ".odp", ".md", ".csv", ".json", ".xml", ".html", ".htm", ".log", ".tex", ".epub", ".mobi") "Audio" = @(".mp3", ".wav", ".aac", ".flac", ".ogg", ".wma", ".m4a", ".mid", ".midi", ".aiff", ".alac", ".ape", ".opus", ".amr", ".au", ".voc") "Video" = @(".mp4", ".avi", ".mov", ".wmv", ".mkv", ".flv", ".webm", ".m4v", ".mpg", ".mpeg", ".3gp", ".3g2", ".ts", ".vob", ".ogv", ".divx", ".asf", ".rm", ".rmvb") "Archives" = @(".zip", ".rar", ".7z", ".tar", ".gz", ".bz2", ".xz", ".cab", ".iso", ".tgz", ".tbz2", ".lzh", ".dmg", ".pkg", ".deb", ".rpm") "Code" = @(".py", ".js", ".html", ".css", ".java", ".c", ".cpp", ".cs", ".php", ".rb", ".go", ".swift", ".sql", ".ps1", ".sh", ".bat", ".vbs", ".ts", ".jsx", ".r", ".pl", ".lua") "Executables" = @(".exe", ".msi", ".app", ".apk", ".dll", ".bin", ".com", ".jar", ".gadget", ".wsf", ".appx", ".appxbundle") "Other" = @()}# Create category folders if they don't existforeach ($category in $categories. Keys) { $categoryPath = Join-Path -Path $sourceFolder -ChildPath $category if (-not (Test-Path -Path $categoryPath)) { New-Item -Path $categoryPath -ItemType Directory | Out-Null Write-Host "Created folder: $category" }} # Get all files in the source folder (non-recursive)$files = Get-ChildItem -Path $sourceFolder -File | Where-Object { $_. Name -ne $MyInvocation. MyCommand. Name } # Counter for moved files$movedFiles = 0$totalFiles = $files. CountWrite-Host "Starting to organize $totalFiles files..." # Process each fileforeach ($file in $files) { $extension = $file. Extension. ToLower() $targetCategory = "Other" # Determine which category the file belongs to foreach ($category in $categories. Keys) { if ($category -eq "Other") { continue } if ($categories[$category] -contains $extension) { $targetCategory = $category break } } # Move the file to the appropriate category folder $targetPath = Join-Path -Path $sourceFolder -ChildPath $targetCategory $targetFile = Join-Path -Path $targetPath -ChildPath $file. Name # Check if target file already exists and handle accordingly if (Test-Path -Path $targetFile) { $baseName = [System. IO. Path]::GetFileNameWithoutExtension($file. Name) $newName = "$baseName`_$(Get-Random)$extension" $targetFile = Join-Path -Path $targetPath -ChildPath $newName } Move-Item -Path $file. FullName -Destination $targetFile $movedFiles++ # Show progress $percentComplete = [math]::Round(($movedFiles / $totalFiles) * 100, 2) Write-Progress -Activity "Organizing Files" -Status "$movedFiles of $totalFiles files processed ($percentComplete%)" -PercentComplete $percentComplete } Write-Host "File organization complete! Moved $movedFiles files into categories."
Automazione degli script di PowerShell con Task Scheduler
La magia degli script di PowerShell generati dall’intelligenza artificiale non finisce con la loro creazione: possono anche essere impostati per essere eseguiti automaticamente, eliminando la necessità dell’intervento umano!
Poiché spesso trascuro le pause durante le mie lunghe sessioni al computer, ho creato uno script che mi avvisa di fare delle brevi pause. Ancora una volta, ho utilizzato l’IA per generare questo script di promemoria con un prompt semplice:
Lo script PowerShell risultante era perfettamente adattato alle mie esigenze:
# Script to remind user to take regular screen breaks # Load required assemblies for notifications Add-Type -AssemblyName System. Windows. Forms# Function to show break reminder notification function Show-BreakReminder { $motivationalMessages = @( "Time for a 5-minute break! Rest your eyes and stretch.", "Screen break time! Look at something 20 feet away for 20 seconds.", "Break time! Stand up and move around for 5 minutes.", "Your eyes need a rest! Take 5 minutes away from the screen.", "Productivity hack: A 5-minute break now will boost your focus!" ) # Select a random message $randomMessage = $motivationalMessages | Get-Random # Create and configure the notification $notification = New-Object System. Windows. Forms. NotifyIcon $notification. Icon = [System. Drawing. SystemIcons]::Information $notification. BalloonTipTitle = "Wellness Reminder" $notification. BalloonTipText = $randomMessage $notification. Visible = $true # Show notification for 10 seconds $notification. ShowBalloonTip(10000) # Clean up after a delay Start-Sleep -Seconds 12 $notification. Dispose() } # Display an initial notification Show-BreakReminder Write-Host "Break reminder displayed. Set this script to run hourly using Task Scheduler."
Ora che avevo lo script, l’ho impostato per l’esecuzione automatica ogni ora tramite Windows Task Scheduler. Ecco come:

Per prima cosa, ho salvato il mio script generato dall’IA come file.ps1 e ho avuto accesso a Task Scheduler tramite il menu Start. Ho proceduto a creare una nuova attività di base con un trigger giornaliero.

Ho modificato le impostazioni di trigger per eseguire l’attività ogni ora. Dopo aver individuato la mia attività nella libreria Task Scheduler, ho fatto clic con il pulsante destro del mouse e ho selezionato Proprietà. Nella scheda Trigger, ho fatto clic su Modifica, ho selezionato l’ opzione Ripeti attività ogni: e ho impostato l’intervallo su 1 ora. Ho anche selezionato Indefinitamente in Durata e ho salvato le modifiche facendo clic su OK.

Poi, ho regolato le impostazioni dell’azione nella finestra Proprietà andando alla scheda Azioni e cliccando su Modifica. Per il campo Programma/script, ho inserito powershell.exe
anziché il percorso diretto al mio script. Nel campo Aggiungi argomenti, ho usato -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Users\David\Desktop\eye-saver.ps1"
, che copriva sia le policy di esecuzione sia il percorso completo al mio script.

Dopo aver salvato queste impostazioni, ho finalizzato la finestra Proprietà cliccando due volte su OK. Il risultato? Un promemoria che funziona senza problemi e che aumenta la mia produttività riducendo l’affaticamento degli occhi!
La bellezza di impiegare l’intelligenza artificiale nella creazione e nell’automazione degli script di PowerShell è la notevole efficienza che introduce nella tua routine quotidiana. Con questi semplici comandi, non stai solo promuovendo un flusso di lavoro migliore, ma stai anche dando al tuo computer il potere di fare il lavoro per te silenziosamente in background.
Tutte le immagini e gli screenshot sono attribuiti a David Morelo.
Domande frequenti
1. Sono necessarie conoscenze di programmazione per creare script PowerShell?
No, non hai bisogno di una conoscenza approfondita della programmazione. Con strumenti di intelligenza artificiale come ChatGPT, puoi generare script semplicemente descrivendo ciò che vuoi, rendendolo accessibile a tutti.
2. Come posso eseguire automaticamente i miei script PowerShell?
Puoi pianificare i tuoi script PowerShell tramite Windows Task Scheduler. Ciò consente loro di essere eseguiti a intervalli specificati, automatizzando le tue attività senza ulteriori azioni da parte tua.
3. Cosa succede se lo script generato dall’intelligenza artificiale non funziona come previsto?
È comune che gli script iniziali richiedano delle modifiche. Rivedi il codice generato, assicurati che i tuoi percorsi siano accurati e modifica tutti i parametri. Non esitare a consultare la documentazione di PowerShell per la risoluzione dei problemi!
Lascia un commento ▼