/
/

Come automatizzare la creazione di mappature di stampanti locali tramite GPO e PowerShell

di Team Ninja
How to Automate the Creation of Local Printer Mappings via GPO and PowerShell blog banner image

Riepilogo

Questo post del blog NinjaOne offre un elenco completo di comandi CMD di base e un’analisi approfondita dei comandi di Windows con oltre 70 comandi cmd essenziali sia per i principianti che per gli utenti avanzati. La guida si propone si piegare in modo pratico i comandi del prompt dei comandi per la gestione dei file, la navigazione nelle directory, la risoluzione dei problemi di rete, le operazioni su disco e l’automazione, con esempi reali per migliorare la produttività. Che tu voglia imparare i comandi cmd fondamentali o padroneggiare gli strumenti avanzati della CLI di Windows, questa guida ti aiuterà a utilizzare il Prompt dei comandi in modo più efficace.

Punti chiave

  • Automatizzare la mappatura delle stampanti con le Preferenze Criteri di gruppo (GPP): crea un GPO collegato alla UO di destinazione, quindi aggiungi una stampante condivisa in Configurazione utente > Preferenze > Impostazioni del Pannello di controllo > Stampanti, specificando il percorso di condivisione (\\print-server-name\printer-share-name). Abilita il Targeting a livello di elemento per applicare la stampante solo a utenti o gruppi specifici, quindi esegui gpupdate /force sui dispositivi di destinazione per applicare le impostazioni.
  • Automatizzare la mappatura delle stampanti con PowerShell: usa Add-Printer -ConnectionName per mappare una stampante condivisa tramite un server di stampa, oppure combina Add-PrinterPort e Add-Printer -DriverName per mappare una stampante locale direttamente tramite indirizzo IP. Usa Set-Printer -IsDefault $true per impostare la stampante predefinita ed esegui lo script manualmente, tramite RMM o come parte di una distribuzione più ampia.
  • Automatizzare la mappatura delle stampanti con PowerShell e script di accesso/disconnessione: salva uno script PowerShell di mappatura delle stampanti in un percorso condiviso, quindi attivalo automaticamente a ogni sessione utente tramite schtasks /create … /sc onlogon oppure aggiungendolo come script di accesso in Configurazione utente > Impostazioni di Windows > Script (accesso/disconnessione) nel GPO.
  • Tracciamento dello stato tramite Registro di sistema: dopo che una stampante è stata mappata correttamente, scrivi un timestamp e l’elenco delle stampanti in una chiave di registro personalizzata usando Set-ItemProperty. Interroga quella chiave con Test-Path e Get-ItemProperty in modo che le GPP ignorino i dispositivi già contrassegnati e segnalino quelli che non lo sono.
  • Targeting dinamico basato su criteri: recupera l’indirizzo IP di un dispositivo con Get-NetIPAddress o la sua appartenenza ai gruppi con whoami /groups, quindi usa una logica condizionale (if/elseif) per richiamare Add-Printer -ConnectionName con il percorso della stampante corrispondente a quell’intervallo IP o gruppo.

La mappatura delle stampanti locali semplifica l’assegnazione delle stampanti in ambienti estesi e suddivisi in più reparti, permettendo agli utenti finali di stampare sempre sui dispositivi corretti. Aiuta a semplificare l’assegnazione dei dispositivi durante la stampa, ottimizzando i flussi di lavoro e aumentando la produttività grazie a configurazioni pensate per l’utente.

Cerchi un video tutorial? Guarda “Come automatizzare la creazione di mappature di stampanti locali tramite GPO e PowerShell” per saperne di più.

Metodi per una mappatura efficace delle stampanti locali

L’assegnazione manuale delle stampanti porta spesso a errori e processi di stampa non riusciti, aumentando il numero di ticket di supporto e il carico di lavoro dei tecnici. Con l’automazione IT, i tecnici possono garantire assegnazioni di stampanti coerenti in tutta l’azienda e semplificare i processi successivi alla creazione delle immagini e di onboarding.

📌 Prerequisiti:

  • Windows Server 2012 o versioni successive
  • Dispositivi client con Windows 10/11 Pro o Enterprise
  • Stampanti condivise pubblicate in Active Directory
  • Esecuzione degli script attivata
  • Stampanti locali raggiungibili tramite indirizzo IP
  • Facoltativo: piattaforma RMM di NinjaOne

📌 Strategie di distribuzione consigliate:

Scegli un metodo

💻
Ideale per singoli utenti
💻💻💻
Ideale per ambienti enterprise
Metodo 1: mappare le stampanti con le Preferenze Criteri di gruppo (GPP)✓
Metodo 2: usare PowerShell per mappare stampanti condivise o locali✓✓
Metodo 3: automatizzare la mappatura delle stampanti locali con script di accesso/disconnessione✓✓
Metodo 4: tracciare lo stato della mappatura delle stampanti nel Registro di sistema✓✓
Metodo 5: distribuire script mirati in base a criteri dinamici✓✓

Metodo 1: mappare le stampanti con le Preferenze Criteri di gruppo (GPP)

📌 Casi d’uso: le GPP connettono automaticamente utenti o computer alle stampanti più vicine. A differenza dei vecchi script di accesso, mantengono le connessioni affidabili e garantiscono che non si interrompano dopo un riavvio. Le GPP supportano inoltre impostazioni delle stampanti per singolo utente e a livello di sistema, per un controllo e una flessibilità maggiori.

📌 Prerequisiti:

  • Console Gestione Criteri di gruppo (gpmc.msc)
  • Privilegi di amministratore di dominio.

⚠️ Importante: verifica le GPP in locale prima di distribuirle a un’intera unità organizzativa. (Consulta ⚠️ Aspetti a cui prestare attenzione.)

  1. Avvia la Console Gestione Criteri di gruppo.
  2. Fai clic con il pulsante destro del mouse sulla UO di destinazione, quindi seleziona Crea un oggetto Criteri di gruppo in questo dominio e crea qui un collegamento….
  3. Segui questo percorso:

Configurazione utente > Preferenze > Impostazioni del Pannello di controllo > Stampanti

  1. Fai clic con il pulsante destro del mouse su Stampanti, seleziona Nuovo > Stampante condivisa e imposta i parametri.
    • Azione: Crea
    • Percorso di condivisione: \\<print-server-name>\<printer nome condivisione>
    • Facoltativamente, puoi selezionare Imposta questa stampante come stampante predefinita.

💡 Suggerimento: puoi trovare il percorso di condivisione avviando printmanagement.msc e andando sul server di stampa di destinazione. Fai clic con il pulsante destro del mouse sulla stampante, seleziona Proprietà, quindi apri la scheda Condivisione.

  1. Nella scheda Comune, abilita il Targeting a livello di elemento (ILT) e aggiungi le condizioni per applicare la preferenza solo nei casi previsti dai criteri specificati.
  2. Apri PowerShell sul dispositivo di destinazione e immetti questo comando: gpupdate /force
  3. Verifica le modifiche immettendo il seguente comando PowerShell:
$computername = # Input your computer name
rundll32 printui.dll,PrintUIEntry /ge /c"\\$computername"

Metodo 2: usare PowerShell per mappare stampanti condivise o locali

📌 Casi d’uso: sfrutta gli script PowerShell per gestire la mappatura di stampanti locali TCP/IP o condivise. Inoltre, gli script di questa sezione possono essere eseguiti tramite piattaforme RMM, garantendo assegnazioni automatizzate delle stampanti agli utenti finali.

📌 Prerequisiti:

  • Driver della stampante già installati.
  • Diritti di amministratore.

Esempio di script per la mappatura di una stampante condivisa:

Lo script seguente crea una connessione alle stampanti condivise tramite un server di stampa.

$printersharename = \\<print-server-name>\<printer share name>
# (e.g., \\<print-server-name>\<printer share name>)
Add-Printer -ConnectionName "$printersharename"

💡 Nota: sostituisci i segnaposto con i valori effettivi del nome del server di stampa e del nome di condivisione della stampante.

Esempio di script per la mappatura di una stampante locale TCP/IP:

Questo script crea una connessione a una stampante locale all’interno di un endpoint, inviando i processi di stampa direttamente alla stampante e bypassando il server di stampa.

$portName = "IP_192.168.1.250"
Add-PrinterPort -Name $portName -PrinterHostAddress “192.168.1.250”Add-Printer -Name "Warehouse Zebra Printer" `
-DriverName "Zebra ZP 500 (ZPL)" `
-PortName $portName

💡Nota: sostituisci i valori segnaposto con l’indirizzo IP effettivo della stampante di destinazione e con il nome corretto del driver disponibile nel tuo sistema.

Comando per impostare una stampante predefinita:

$name = #insert printer name (e.g., Warehouse Zerbra Printer)
Set-Printer -Name "$name" -IsDefault $true

⚠️ Importante: verifica la correttezza della sintassi dello script prima di eseguirlo su una macchina locale o su più endpoint. (Consulta ⚠️ Aspetti a cui prestare attenzione.)

Metodo 3: automatizzare la mappatura delle stampanti locali con script di accesso/disconnessione

📌 Casi d’uso: usa l’Utilità di pianificazione o gli script di accesso/disconnessione per garantire agli utenti finali una mappatura delle stampanti coerente a ogni sessione. Questo metodo previene anche la deriva delle policy, perché consente alla configurazione di correggersi automaticamente alla successiva esecuzione.

📌 Prerequisiti:

  • Console Gestione Criteri di gruppo (gpmc.msc)
  • Privilegi di amministratore di dominio.
  • Accesso all’Utilità di pianificazione.

Esempio di script di accesso tramite CMD con privilegi elevati:

Crea uno script personalizzato per la mappatura delle stampanti locali oppure scegline uno tra quelli di esempio del Metodo 2. Salva lo script come file .ps1 nel percorso che preferisci. In questo esempio, lo script verrà salvato in "C:\Scripts\MapPrinters.ps1".

schtasks /create /tn “MapPrinters” /tr "powershell.exe -File C:\Scripts\MapPrinters.ps1" /sc onlogon /ru SYSTEM

💡 Nota: MapPrinters.ps1 non esiste per impostazione predefinita e deve essere creato manualmente dagli amministratori con la logica di mappatura delle stampanti necessaria. Una volta creato, archivia lo script nel domain controller per renderlo accessibile da Active Directory e distribuirlo tramite script di accesso o disconnessione.

Configurare uno script di accesso tramite GPO:

In alternativa, gli script di accesso possono essere configurati nella Console Gestione Criteri di gruppo.

  1. Apri gpmc.msc e crea un GPO collegato alla UO di destinazione oppure modificane uno esistente.
  2. Segui questo percorso:

Configurazione utente > Impostazioni di Windows > Script (accesso/disconnessione)

  1. Aggiungi lo script che preferisci come script di accesso, cercando e selezionando il file .ps1 corretto.
  2. Configura la policy Attiva esecuzione script per consentire l’esecuzione degli script, andando in:

Configurazione del computer > Modelli amministrativi > Componenti di Windows > Windows PowerShell > Attiva esecuzione script

Metodo 4: tracciare lo stato della mappatura delle stampanti nel Registro di sistema

📌 Casi d’uso: sfrutta il Registro di sistema per contrassegnare i dispositivi con le configurazioni di mappatura delle stampanti, in modo che il targeting a livello di elemento (ILT) delle GPP salti la rimappatura quando la chiave esiste già. Inoltre, questo aiuta i tecnici a interrogare gli endpoint e a individuare rapidamente i dispositivi non conformi da rimappare.

⚠️ Attenzione: configurazioni errate nel Registro di sistema possono causare instabilità del sistema e incidere sulle prestazioni del dispositivo. (Consulta ⚠️ Aspetti a cui prestare attenzione.)

Esempio di script PowerShell per contrassegnare i dispositivi con mappature riuscite:

New-Item -Path "HKCU:\Software\Org\PrinterMapping" -Force
Set-ItemProperty -Path "HKCU:\Software\Org\PrinterMapping" -Name "LastMapped" -Value (Get-Date).ToString(“u”)
Set-ItemProperty -Path "HKCU:\Software\Org\PrinterMapping" -Name "MappedPrinters" -Value "Accounting-Printer, Warehouse Zebra"

Esempio di query PowerShell per i tag nel Registro di sistema:

if (Test-Path 'HKCU:\Software\Org\PrinterMapping') { Get-ItemProperty 'HKCU:\Software\Org\PrinterMapping' } else { ‘Missing’ }

Metodo 5: distribuire script mirati in base a criteri dinamici

📌 Casi d’uso: distribuisci script dinamici per ottenere l’IP e i dettagli degli endpoint basati sui gruppi, automatizzando l’assegnazione delle stampanti in base alla sede e al reparto dell’utente. Usati come script di accesso, mantengono corrette le assegnazioni delle stampanti, riducendo stampe errate ed errori.

⚠️ Attenzione: gli script dinamici sono potenti ma rischiosi: requisiti poco chiari, convalide deboli e mancanza di misure di sicurezza possono causare configurazioni errate. (Consulta ⚠️ Aspetti a cui prestare attenzione.)

Esempio di script PowerShell con targeting basato sull’IP:

$ip = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.PrefixOrigin -eq "Dhcp" }).IPAddress
if ($ip -like "192.168.10.*") {
Add-Printer -ConnectionName "\\PrintServer01\Accounting-Printer"
}
elseif ($ip -like "192.168.20.*") {
Add-Printer -ConnectionName "\\PrintServer01\Sales-Printer"
}

💡 Nota: sostituisci il nome del gruppo segnaposto con uno esistente nella tua Active Directory. Inoltre, modifica il percorso della stampante indicando la condivisione corretta nella tua configurazione.

Esempio di script PowerShell con targeting basato sui gruppi:

$groups = (whoami /groups)
if ($groups -match "Accounting") {
Add-Printer -ConnectionName "\\PrintServer01\Accounting-Printer"
}

⚠️ Aspetti a cui prestare attenzione

Rischi

Possibili conseguenze

Come rimediare

Distribuire GPP non testateLe GPP possono nascondere configurazioni errate in grado di compromettere gravemente la mappatura delle stampanti locali.Testa le configurazioni in un ambiente controllato per verificarne l’effetto e la validità prima di una distribuzione su larga scala.
Sintassi dello script errataScript scritti male possono generare errori e impedire la corretta applicazione delle configurazioni di mappatura delle stampanti.Testa gli script in locale per verificarne la validità, quindi distribuiscili in fasi successive per monitorarne gradualmente l’impatto e ridurre il rischio.
Configurazioni errate del Registro di sistemaModifiche sbagliate nel Registro di sistema possono compromettere gravemente le prestazioni e la stabilità del dispositivo.Esegui il backup del Registro di sistema di Windows prima di apportare modifiche, così da poter tornare indietro facilmente in caso di errori di configurazione.
Script dinamici scritti malePur essendo potenti, gli script dinamici possono introdurre punti di errore perché dipendono da più fattori, con il rischio di mappature delle stampanti non corrette.Convalida gli script con attenzione, usa convenzioni di denominazione chiare durante i controlli sui gruppi e tieni conto delle VPN quando usi script dinamici.

Risoluzione dei problemi legati alla mappatura delle stampanti locali

Qualcosa può andare storto quando si aggiungono stampanti locali tramite GPO e script. In questa sezione vedremo come risolvere i problemi più comuni nella mappatura delle stampanti locali.

Problema n. 1: la stampante non compare quando viene aggiunta tramite GPO

Apri un prompt di PowerShell ed esegui questo script: gpresult /h report.html

Apri report.html e verifica che le configurazioni applicate siano corrette. Assicurati inoltre che il GPO sia collegato alla UO corretta e che l’autorizzazione di condivisione della stampante di destinazione sia attiva.

Problema n. 2: problemi di installazione dei driver

La mappatura delle stampanti locali può fallire se il driver di una stampante è bloccato da una policy o se è installato quello sbagliato. Per evitarlo, preinstalla i driver della stampante sull’endpoint di destinazione, manualmente oppure con il cmdlet Add-PrinterDriver.

Puoi inoltre avviare gpmc.msc e creare o modificare un GPO collegato alla UO di destinazione. Vai in Configurazione del computer > Criteri > Modelli amministrativi > Stampanti, quindi fai clic con il pulsante destro del mouse e modifica Restrizioni Point and Print specificando i nomi dei server di stampa di destinazione.

Problema n. 3: lo script non viene eseguito

Apri gpmc.msc, crea o modifica un GPO e vai in Configurazione del computer > Componenti di Windows > Windows PowerShell. Configura la policy Attiva esecuzione script selezionando Consenti script locali e script remoti firmati.

I tecnici possono anche aggiungere un semplice logging agli script, ad esempio Out-File C:\Temp\MapPrinters.log -Append, per evitare errori silenziosi.

Problema n. 4: chiavi di registro mancanti

Controlla di avere come destinazione l’hive corretto del Registro di sistema. Per le stampanti per singolo utente, esegui lo script nel contesto dell’utente interrogando l’hive HKCU. Le mappature a livello di sistema, invece, devono usare HKLM.

Aspetti da considerare nella gestione delle stampanti locali sugli endpoint

La mappatura delle stampanti locali semplifica la distribuzione dei processi di stampa tra le stampanti di un ambiente. È uno strumento efficace di per sé, ma di seguito trovi alcuni aspetti da considerare per sfruttarlo al meglio.

Evitare stampanti duplicate

Più esecuzioni dello stesso script possono creare per errore stampanti duplicate, facendo perdere tempo. Aggiungi Get-Printer -Name "PrinterName" allo script, in modo che verifichi se una stampante esiste già ed eviti duplicati.

Gestione delle stampanti offline

Le stampanti non raggiungibili possono rallentare i tempi di accesso e far fallire la mappatura. Per saltare la mappatura di stampanti o server che non rispondono, aggiungi Test-Connection -Quiet -Count 3 “PrinterName” a uno script PowerShell.

Autorizzazioni delle stampanti

Anche con una buona gestione della mappatura delle stampanti locali, gli utenti non riusciranno a stampare senza le corrette autorizzazioni di condivisione. Avvia printmanagement.msc, vai in Proprietà stampante > Sicurezza della stampante di destinazione e verifica che i gruppi appropriati dispongano dei diritti di stampa.

Servizi NinjaOne per automatizzare la gestione delle stampanti locali

NinjaOne offre servizi automatizzati che aiutano gli MSP e i reparti IT interni a distribuire assegnazioni dinamiche delle stampanti su larga scala.

Servizio NinjaOneDefinizioneCome aiuta la mappatura delle stampanti locali
PowerShell remotoPowerShell remoto consente ai tecnici di eseguire script da remoto in tempo reale.Automatizza la distribuzione degli script PowerShell per la mappatura delle stampanti locali in modo coerente e centralizzato in tutto l’ambiente.
Campi personalizzatiI tecnici possono usare i campi personalizzati per archiviare informazioni all’interno di un endpoint, ottenendo a colpo d’occhio informazioni più approfondite sul dispositivo.Usa i campi personalizzati per contrassegnare, organizzare e selezionare dispositivi specifici, rendendo la distribuzione degli script più precisa ed efficiente.
Monitoraggio in Tempo Reale e avvisi automatizzatiConsente il monitoraggio proattivo degli endpoint e la creazione di avvisi personalizzati per ridurre il tempo medio di riparazione.Monitora costantemente la mappatura delle stampanti locali e usa gli Avvisi Personalizzati per attivare automaticamente script di correzione, riducendo la necessità di interventi manuali.
Automazione basata su policyStandardizza le configurazioni di sistema sugli endpoint e automatizza le patch per conformità e manutenzione.Sfrutta questo servizio per attivare automaticamente azioni quando la policy di mappatura delle stampanti inizia a deviare, prima che comprometta la conformità.

Automatizza la mappatura delle stampanti locali per semplificare gestione e risoluzione dei problemi

Puoi usare script PowerShell e CMD per automatizzare la distribuzione delle stampanti locali. Inoltre, impostare gli script perché vengano eseguiti automaticamente all’accesso garantisce coerenza per tutti gli utenti dell’ambiente.

Per le distribuzioni centralizzate, puoi usare i GPO per configurare le mappature delle stampanti condivise, abbinandoli ai tag nel Registro di sistema per il targeting a livello di elemento. In alternativa, usa una piattaforma unificata per le operazioni IT come NinjaOne per migliorare la visibilità sugli endpoint e ottenere un’automazione granulare delle policy legate alle stampanti.

Argomenti correlati:

Guida rapida

NinjaOne dispone di funzionalità per automatizzare la mappatura delle stampanti locali. In particolare:

  1. Esiste uno script nativo chiamato “Add Network Printer” che ti permette di:
    • Aggiungere o rimuovere una stampante di rete condivisa
    • Configurare la stampante come connessione per singolo computer
    • Applicare la mappatura della stampante a tutti i profili utente
  2. Lo script può essere usato nella Libreria di automazione di NinjaOne, il che significa che puoi:
    • Distribuirlo su più dispositivi
    • Pianificare la mappatura della stampante
    • Applicarlo tramite policy

Dettagli principali:

  • Lo script è pensato per aggiungere stampanti di rete condivise
  • Funziona su tutti i profili utente del computer
  • Può essere distribuito e automatizzato facilmente tramite la piattaforma NinjaOne

FAQs

Per le stampanti mappate con PowerShell, usa Remove-Printer -Name “PrinterName” per annullare la mappatura di un dispositivo specifico.

Per le stampanti distribuite tramite GPO, modifica la voce GPP collegata e cambia l’azione da “Aggiorna” a “Elimina”. Quindi esegui gpupdate /force sui dispositivi di destinazione per applicare la rimozione. Per le stampanti mappate tramite tag nel Registro di sistema è necessario eliminare anche la chiave di registro corrispondente, così da evitare che la logica di tracciamento segnali uno stato “mappato” non più valido.

Fai riferimento al metodo di tagging nel Registro di sistema descritto in questa guida. Questo metodo consente ai tecnici di interrogare i dispositivi in blocco e di segnalare le voci mancanti o non più valide. Il miglior software RMM può ampliare ulteriormente questa possibilità con campi personalizzati e reporting centralizzato. I team IT possono così ottenere una visione d’insieme sulla conformità delle mappature a livello di inventario, invece di controllare ogni singola macchina tramite Get-Printer.

La mappatura di una stampante crea solo la connessione, ma non concede i diritti di stampa. L’account o il gruppo dell’utente deve disporre anche dell’autorizzazione di stampa sull’oggetto stampante condivisa. Puoi configurarla andando in Proprietà stampante > Sicurezza in Gestione stampa. Senza questo livello di autorizzazioni, una stampante mappata correttamente continuerà a non funzionare o restituirà un errore di accesso negato quando l’utente prova a stampare.

Ti potrebbe interessare anche

Pronto a semplificare le parti più complesse dell'IT?