Come modificare le impostazioni di visualizzazione del sistema utilizzando PowerShell

PowerShell è uno strumento incredibilmente potente sia per gli amministratori di sistema Windows che per gli utenti finali. In particolare, quando si tratta di modificare le impostazioni di visualizzazione del sistema, utilizzare i comandi PowerShell invece dell’interfaccia grafica può risparmiare tempo e consentire la creazione di script di automazione. Questo articolo dettaglierà come cambiare impostazioni di base come la risoluzione e l’orientamento del display tramite PowerShell, consentendo una personalizzazione del sistema più efficiente e rapida.

Indice

Le basi delle impostazioni di visualizzazione

Prima di cambiare le impostazioni di visualizzazione con PowerShell, è importante comprendere i comandi disponibili e il loro uso di base. Nei sistemi Windows, i cmdlet ‘Get-DisplayResolution’ e ‘Set-DisplayResolution’ sono principalmente usati per controllare e impostare la risoluzione del display.

Controllare la risoluzione

Per controllare la risoluzione del display corrente, utilizzare il seguente comando.

Get-DisplayResolution

Questo comando elenca la risoluzione attuale di tutti i display collegati al sistema.

Impostare la risoluzione

Per cambiare a una risoluzione specifica, utilizzare il cmdlet ‘Set-DisplayResolution’ e specificare la risoluzione desiderata. Per esempio, per impostare la risoluzione a 1920×1080, eseguire il seguente comando.

Set-DisplayResolution -Width 1920 -Height 1080

Questo comando cambia la risoluzione del display del sistema ai valori specificati. Tuttavia, l’uso di questo comando richiede privilegi di amministratore.

Cambiare l’orientamento del display

Per cambiare l’orientamento del display, possono essere necessari strumenti aggiuntivi o script, ma generalmente si effettua utilizzando ‘DisplaySettings’ o strumenti di terze parti.

Cambiare le impostazioni di visualizzazione con PowerShell inizia con questi comandi di base. Sfruttando questi comandi, è possibile manipolare liberamente varie impostazioni come risoluzione e orientamento del display. Le prossime sezioni spiegheranno in dettaglio come cambiare queste impostazioni specificamente.

Come cambiare la risoluzione

Cambiare la risoluzione del display utilizzando PowerShell è incredibilmente utile per la personalizzazione del sistema e la creazione di script di automazione. Qui, spiegheremo specificamente i passaggi per cambiare la risoluzione utilizzando uno script.

Impostare la risoluzione con uno script

Prima di tutto, creare uno script per cambiare la risoluzione. Questo script utilizzerà il cmdlet Set-DisplayResolution per impostare il display del sistema alla risoluzione specificata. Di seguito è riportato uno script di esempio per impostare la risoluzione a 1920×1080.

# Script PowerShell per impostare la risoluzione a 1920x1080
try {
    # Verifica l'esecuzione con privilegi di amministratore
    $currentUser = [Security.Principal.WindowsIdentity]::GetCurrent()
    $windowsPrincipal = New-Object Security.Principal.WindowsPrincipal($currentUser)
    $adminRole = [Security.Principal.WindowsBuiltInRole]::Administrator

    if ($windowsPrincipal.IsInRole($adminRole)) {
        # Imposta la risoluzione
        Set-DisplayResolution -Width 1920 -Height 1080 -Force
        Write-Host "La risoluzione è stata impostata a 1920x1080.";
    } else {
        Write-Host "Sono richiesti i privilegi di amministratore per eseguire questo script.";
    }
} catch {
    Write-Error "Si è verificato un errore durante l'impostazione della risoluzione: $_";
}

Questo script verifica prima se l’utente corrente ha i privilegi di amministratore e, in caso affermativo, procede a cambiare la risoluzione. Il parametro -Force forza il cambiamento della risoluzione senza conferma dell’utente.

Come eseguire lo script

Dopo aver creato lo script, aprire PowerShell in modalità amministratore, navigare nella directory dove è salvato lo script e poi eseguire lo script. È possibile eseguire lo script utilizzando il seguente comando.

.\ChangeResolution.ps1

Se lo script viene eseguito con successo, apparirà un messaggio che indica “La risoluzione è stata impostata a 1920×1080.” e la risoluzione del display del sistema cambierà al valore specificato. Se il cambiamento della risoluzione fallisce per qualche motivo, verrà visualizzato un messaggio di errore.

Questo metodo consente di passare facilmente tra impostazioni di risoluzione specifiche, abilitando l’automazione del flusso di lavoro e cambiamenti rapidi alle impostazioni del sistema.

Regolazione dell’orientamento del display

Regolare l’orientamento del display utilizzando PowerShell è particolarmente utile in ambienti con più monitor o per compiti specifici. Questa sezione spiegherà come cambiare l’orientamento del display da paesaggio a ritratto o viceversa utilizzando PowerShell.

Purtroppo, i cmdlet standard di PowerShell non offrono direttamente la funzionalità per cambiare l’orientamento del display. Tuttavia, creando script che chiamano strumenti di terze parti o Windows API, questa operazione può essere realizzata.

Utilizzo di DisplaySettings

Un metodo coinvolge l’uso di uno strumento da linea di comando di terze parti chiamato DisplaySettings. Questo strumento consente il controllo diretto dell’orientamento del display dalla linea di comando o tramite script.

Uso di base di DisplaySettings

Prima di tutto, scaricare e installare DisplaySettings sul proprio sistema. Poi, è possibile cambiare l’orientamento del display eseguendo il seguente comando.

DisplaySettings /setorientation:portrait

Questo comando imposta l’orientamento del display su ritratto. Analogamente, è possibile utilizzare l’opzione /setorientation:landscape per cambiarlo in paesaggio.

Script che utilizza Windows API

Un altro metodo consiste nel creare uno script che chiama direttamente le Windows API per cambiare l’orientamento del display. Questo approccio richiede conoscenze più avanzate ma consente un controllo più flessibile.

# Esempio: Script concettuale per cambiare l'orientamento del display utilizzando Windows API
# Nota: Questo codice è concettuale e non funzionerà così com'è.
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;

public class Display {
    [DllImport("user32.dll")]
    public static extern bool SetDisplayConfig(...);
}
"@ 

# Chiamata API specifica per impostare l'orientamento del display
# Display.SetDisplayConfig(...);

Così, ci sono diversi metodi per regolare l’orientamento del display utilizzando PowerShell. Scegliere il metodo migliore secondo il proprio ambiente di lavoro e gli obiettivi.

Gestione di molteplici impostazioni di visualizzazione

Utilizzare più display è comune nei luoghi di lavoro moderni, e configurare efficientemente le impostazioni di ciascun display è essenziale per un ambiente di lavoro efficace. Questa sezione introduce metodi per gestire molteplici impostazioni di visualizzazione utilizzando PowerShell.

Identificare più display

Il primo passo è identificare accuratamente più display. Con PowerShell, è possibile utilizzare il cmdlet Get-WmiObject per recuperare informazioni sui display collegati al sistema.

Get-WmiObject -Namespace root\wmi -Class WmiMonitorID | ForEach-Object {
    $monitor = $_
    $name = ($monitor.InstanceName -split "\#")[2]
    $serial = [System.Text.Encoding]::ASCII.GetString($monitor.SerialNumberID)
    Write-Host "Nome display: $name, Numero di serie: $serial";
}

Questo comando visualizza il nome e il numero di serie di ciascun display collegato al sistema, aiutando a identificarli.

Impostare l’arrangiamento dei display

Una volta identificati più display, il passo successivo è impostare il loro arrangiamento. Anche se non è possibile impostare direttamente l’arrangiamento dei display con PowerShell, è possibile utilizzare DisplaySwitch.exe per cambiare l’arrangiamento dei display da uno script.

# Impostare i display in modalità estesa
Start-Process DisplaySwitch.exe -ArgumentList "/extend"

Questo comando istruisce il sistema ad utilizzare i display connessi in modalità estesa. Analogamente, è possibile utilizzare le opzioni /clone, /internal, /external per cambiare la modalità di visualizzazione.

Impostazioni individuali per risoluzione e orientamento

In un setup multi-display, si potrebbe voler impostare la risoluzione e l’orientamento individualmente per ciascun display. Utilizzare il cmdlet Set-DisplayResolution precedentemente introdotto e strumenti di terze parti per cambiare l’orientamento del display per personalizzare le impostazioni per ciascun display.

Gestire molteplici impostazioni di visualizzazione implica un’accurata identificazione dei display, un’impostazione corretta dell’arrangiamento e l’adattamento della risoluzione e dell’orientamento per ciascun display secondo necessità. Utilizzando PowerShell, questi processi possono essere automatizzati, costruendo un ambiente di lavoro più efficiente.

Esempio di applicazione: Cambiare automaticamente le impostazioni di visualizzazione al lancio di applicazioni specifiche

Regolare manualmente la risoluzione del display e l’orientamento ogni volta che si lavora con un’applicazione specifica può essere noioso. Questo esempio di applicazione introduce un metodo per cambiare automaticamente le impostazioni di visualizzazione quando un’applicazione viene lanciata, utilizzando script PowerShell. In questo esempio, lo script cambierà la risoluzione al lancio dell’applicazione e tornerà alla risoluzione originale alla chiusura dell’applicazione.

Panoramica dello script

Questo script funziona come segue:

  1. Lanciare un’applicazione specifica.
  2. Cambiare la risoluzione del display a un valore specificato quando l’applicazione viene lanciata.
  3. Tornare alla risoluzione originale una volta che l’applicazione si chiude.

Creare lo script

Di seguito è riportato uno script PowerShell di esempio che rileva il lancio di un’applicazione specificata (ad esempio, Photoshop), cambia la risoluzione e riporta la risoluzione indietro dopo la chiusura dell’applicazione.

# Percorso dell'applicazione
$appPath = "C:\Program Files\Adobe\Adobe Photoshop\Photoshop.exe"
# Nuova risoluzione
$newWidth = 1920
$newHeight = 1080
# Salvare la risoluzione originale
$originalResolution = Get-DisplayResolution

# Lanciare l'applicazione
Start-Process $appPath

# Cambiare la risoluzione
Set-DisplayResolution -Width $newWidth -Height $newHeight -Force

# Attendere la chiusura dell'applicazione
$process = Get-Process | Where-Object { $_.Path -eq $appPath }
while ($process -ne $null) {
    Start-Sleep -Seconds 5
    $process = Get-Process | Where-Object { $_.Path -eq $appPath }
}

# Tornare alla risoluzione originale
Set-DisplayResolution -Width $originalResolution.Width -Height $originalResolution.Height -Force

Questo script è progettato per cambiare automaticamente a una risoluzione ottimale per il lavoro con un’applicazione specifica (in questo esempio, Photoshop) e tornare alle impostazioni originali dell’utente dopo il completamento del lavoro. Questo metodo può migliorare significativamente l’efficienza del lavoro.

Risoluzione dei problemi: Problemi comuni e soluzioni

Quando si cambiano le impostazioni di visualizzazione utilizzando PowerShell, possono sorgere diversi problemi comuni. Questa sezione introduce questi problemi e le loro soluzioni.

Impossibile cambiare la risoluzione

  • Causa: Il display di destinazione potrebbe non supportare la risoluzione specificata, o lo script PowerShell non viene eseguito con privilegi di amministratore.
  • Soluzione: Verificare le specifiche del display e specificare solo risoluzioni supportate. Inoltre, fare clic con il tasto destro sullo script e selezionare “Esegui come amministratore” per eseguirlo.

Impossibile cambiare l’orientamento del display

  • Causa: Cambiare l’orientamento del display può richiedere strumenti specifici o chiamate alle Windows API.
  • Soluzione: Assicurarsi di utilizzare lo strumento corretto e considerare l’introduzione di software di terze parti o script che manipolano direttamente le Windows API, se necessario.

Le impostazioni per più display non vengono riflesse

  • Causa: I display potrebbero non essere identificati correttamente, o potrebbero esserci errori nell’uso di DisplaySwitch.exe.
  • Soluzione: Riconfermare le informazioni di identificazione per i display collegati e assicurarsi che il display corretto sia preso di mira per l’applicazione delle impostazioni. Inoltre, rivedere le opzioni della linea di comando per DisplaySwitch.exe per assicurarsi che le opzioni corrette vengano utilizzate.

Conclusione

Cambiare le impostazioni di visualizzazione del sistema utilizzando PowerShell è altamente vantaggioso per migliorare l’efficienza del lavoro e l’automazione. Questo articolo ha introdotto una vasta gamma di tecniche, dai cambiamenti di base delle impostazioni di visualizzazione alla gestione di più display e al cambiamento automatico delle impostazioni al lancio di applicazioni specifiche. Sono stati discussi anche metodi di risoluzione dei problemi per problemi comuni. Utilizzando queste conoscenze, è possibile costruire uno spazio di lavoro digitale più confortevole ed efficiente. Massimizzare le potenti funzionalità di PowerShell per semplificare i compiti quotidiani.

Indice